我有一个 Linux 网络应用程序。
我是否需要打开端口 25 才能仅使用 PHP 邮件功能发送电子邮件? 如果必须打开端口 25,如何禁用接收电子邮件?
编辑: 我之所以询问是因为我知道 sendmail 是我的服务器上的消息传输代理。
答案1
php mail() 函数依靠类似二进制的 sendmail 来发送邮件。
任何 MTA(监听端口 25 的服务)都有类似 sendmail 的程序可以达到这个目的。
如果你不想打开端口 25,你可以为来自世界各地的所有连接设置防火墙;例如
iptables -I INPUT -p tcp -i eth0 --dport 25 -j REJECT
答案2
不。
只要你的防火墙规则允许出站流量,你就不需要打开端口 25发送一封电邮。
仅当你希望你的机器收到电子邮件。
答案3
这取决于服务器/网关/任何地方的防火墙是如何配置的。
大多数情况下,防火墙会阻止传入流量,例如通过端口 25 进入您服务器的流量。话虽如此,我通常会将防火墙配置为仅允许来自已知邮件服务器的端口 25 上的出站流量。
不管怎样,这实际上取决于您的防火墙配置,但为了尽可能详细地回答您的问题... 打开 25 个出站端口并不等于打开 25 个入站端口。如果您在端口 25 上启用出站流量,您将能够发送邮件。如果您将其关闭,那么您将无法接收邮件。
这当然取决于防火墙在您的网络拓扑中的位置......
答案4
如果你只想发送电子邮件而不接收电子邮件,你可以打开端口 25 但不打开端口 25。或者你可以使用非标准端口中继,例如NO-IP 中继(与公司无关)。不过我不确定你为什么要这样做。