PHP邮件减速正在挂起页面

时间:2012-03-28 22:11:29

标签: php sendmail

我有一个奇怪的邮件问题。具体来说,我有一个检查请求标头的脚本,如果它匹配某个字符串,它会使用mail()发送邮件。这是一个基本邮件,带有标准的'到','主题','内容','来自'字段,没有别的。

邮件确实发送得很好,但它会导致页面加载挂起30秒以上(即使在生成的HTML之外使用mail()),也是太长了。我看到一些回复建议将邮件转储到数据库并在其上运行一个cron作业,但在这种情况下,这不是一个真正的选择。

基本上,我想知道是否有办法在没有mail()完成的情况下强制执行php脚本(页面加载)完成,或者我应该检查一些可能导致这花费这么长时间的配置。

3 个答案:

答案 0 :(得分:0)

我在RHEL 4服务器上遇到过类似的问题,发现2个解决方案有效:使用PEAR邮件或使用外部smtp服务器(在我的情况下是gmail)。发送一个简单的联系表格从30 - 50秒到不到一秒钟。

我从未发现是什么导致它......

答案 1 :(得分:0)

从未遇到mail()的问题,我发现它非常可靠。

  • 所有电子邮件或特定邮件都会出现问题?
  • 您是否尝试在其他服务器上测试代码?
  • 使用here中的PHPmailer()替代(如果可能)使用SMTP。 Here是一个很好的教程。


答案 2 :(得分:0)

当我遇到类似的问题时,这是由于缺少规范的主机名。

看看/var/log/mail.err:如果你看到

  

sendmail [31575]:无法限定我自己的域名(localhost) - 使用短名称"

那就是它!

然后你需要:

  1. 将您的主机名添加到/etc/hostsyour.ip.address your.host.name
  2. /etc/hostname中的主机名设置为:your.host.name
  3. 重新启动