无法在端口25上Telnet到SMTP服务器,但PHP mail()可以正常工作

时间:2015-01-23 14:39:39

标签: php email telnet

没有找到这个问题的任何答案:PHP mail() function from inside VMWare virtual machine (Win7)

我决定尝试一些新的东西。我在一台机器上设置了一个SMTP中继。我可以使用它并在其假脱机目录中接收邮件就好了。 但是,当我尝试将其设置为将邮件转发到已配置的SMTP服务器(名为" mail",在端口25)时,它会失败。

Telnet也在端口25上失败,所以它似乎无法正常工作 - "连接被拒绝"是来自telnet的错误。

但真正奇怪的是,如果我在这台机器上设置Apache / PHP服务器并使用PHP的邮件功能(配置为连接到"邮件"在端口25)它可以工作!我可以从PHP发送电子邮件(我不需要),但我无法远程登录到该机器。

有人见过这样的东西吗?它让我发疯了!

提前致谢

2 个答案:

答案 0 :(得分:0)

您是否检查过防火墙设置?如果您的防火墙不允许从外部地址到端口25的连接,但允许本地连接到端口25,那么这就解释了为什么PHP可以正常使用它但您无法从外部。

答案 1 :(得分:0)

您是否尝试使用“mail”的IP地址而不是主机名。

Win 7上的网络设备默认使用ipv4 ipv6。如果在打开连接(即启动telnet)时指定计算机名称(不是计算机的DNS条目),则“mail”可能会被解析为该计算机的ipv4或ipv6地址(更多或者更少)随意。如果您的邮件服务器只侦听ipv4地址,则在“邮件”解析后您将无法获得连接。

当机器“mail”有多个网络设备时,您可以观察到同样的问题。然后它可以将计算机名称解析为网络设备的任一地址。

相关问题