之前曾使用托管服务提供商的 SMTP 服务器成功发送邮件的 Web 服务器似乎突然与 SMTP 服务器失去了连接。
[Wed Nov 28 09:51:27 2012] [error] [client 10.250.11.81] PHP Warning: fsockopen(): unable to connect to smtp.ourprovider.net:25 (Connection timed out) in /var/www/(....)/phpmailer/class.smtp.php on line 105, referer: http://oursite.net/sendmessage.php#
如果我从 Web 服务器手动通过 telnet 连接到 SMTP 服务器的端口 25,我就能连接并发送邮件,不会出现任何问题。
Web 服务器运行的是 RHEL 6.3 和 Apache 2.2.15。SE 布尔httpd_can_network_connect
值为on
。我们的 PHP 版本是 5.3.3。
我应该从哪里开始寻找解决办法?
答案1
从 开始dig smtp.ourprovider.net
。如果返回多个 IP 地址,则必须检查每个 IP 地址的连接性。PHP 可能正在尝试一个 IP 地址,而您的 telnet 正在尝试另一个 IP 地址。