PHP mail()函数没有返回true或false - 脚本只是超时

时间:2012-01-09 03:34:05

标签: php email centos

php邮件功能已停止在Centos 5.7服务器上运行。包含函数调用的脚本在此服务器上工作,直到最近几天,但没有任何配置更改..

每当我调用mail()函数时,PHP脚本就会在该行停止/冻结,直到达到脚本超时限制。

$msgheader  = 'MIME-Version: 1.0' . "\r\n";
$msgheader .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$msgheader .= "From: Test Name <no-reply@servername.com>\r\n";

echo "About to send mail ->";
mail ("test@servername.com", "Test Subject", "Test Body", $msg_header);
echo "Script never reaches this line!";

我已修改此问题的电子邮件地址,但我知道它们不是问题,因为之前脚本已正确执行。

我已尝试将电子邮件地址更改为各种个人帐户(例如@ yahoo.com)但仍然无效,因此我认为这不是由于我的用户所在组织的垃圾邮件过滤。 / p>

如果无法发送电子邮件,可能导致邮件功能陷入脚本超时而不是立即返回false的原因是什么?我可以看什么设置?

谢谢!

修改

  • Apache错误日志中没有错误
  • php.ini有:

    SMTP = localhost; smtp_port = 25; sendmail_path = / usr / sbin / sendmail -t -i

1 个答案:

答案 0 :(得分:0)

此问题与服务器的DNS设置问题有关。

尝试后:

yum update
很明显,服务器连接到互联网时遇到了问题。这解释了尝试进行出站连接以发送电子邮件的超时超时。

我必须添加

搜索localdomain

到我在CentOS中的/etc/resolv.conf文件中建立出站连接。现在我知道这个问题,这个问题最好发布在ServerFault上。