Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t Telnet到端口25上的SMTP服务器,但PHP mail()可以工作_Php_Email_Telnet - Fatal编程技术网

Can';t Telnet到端口25上的SMTP服务器,但PHP mail()可以工作

Can';t Telnet到端口25上的SMTP服务器,但PHP mail()可以工作,php,email,telnet,Php,Email,Telnet,未找到此问题的任何答案: 我决定尝试一些新的东西。我在机器上设置了SMTP中继。我可以使用它并在它的后台处理目录中接收邮件。 但是,当我尝试将其设置为将邮件转发到已配置的SMTP服务器(称为“邮件”,位于端口25)时,它失败了 Telnet在端口25上也出现故障,因此它无法工作似乎很正常——“连接被拒绝”是Telnet的错误 但真正奇怪的是,如果我在这台机器上设置一个Apache/PHP服务器,并使用PHP的邮件功能(配置为在端口25连接到“邮件”),它就可以工作了!我可以从PHP发送电子邮件(

未找到此问题的任何答案:

我决定尝试一些新的东西。我在机器上设置了SMTP中继。我可以使用它并在它的后台处理目录中接收邮件。 但是,当我尝试将其设置为将邮件转发到已配置的SMTP服务器(称为“邮件”,位于端口25)时,它失败了

Telnet在端口25上也出现故障,因此它无法工作似乎很正常——“连接被拒绝”是Telnet的错误

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

有人见过这样的东西吗?这快把我逼疯了


提前感谢

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

您是否尝试使用“邮件”的ip地址而不是主机名

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


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

是的,我有。尝试了DNS和IP。适用于PHP mail(),但不适用于telnet.:(感谢您的回复。出于测试目的,在试图访问远程SMTP服务器的客户端计算机上禁用了防火墙。(网络已关闭)虽然我无法访问SMTP服务器的防火墙设置。但是我对您的答复感到困惑-为什么端口25的本地连接允许PHP使用它?因为PHP被配置为命中远程SMTP服务器?