我有一个奇怪的邮件问题。具体来说,我有一个检查请求标头的脚本,如果它匹配某个字符串,它会使用mail()
发送邮件。这是一个基本邮件,带有标准的'到','主题','内容','来自'字段,没有别的。
邮件确实发送得很好,但它会导致页面加载挂起30秒以上(即使在生成的HTML之外使用mail()
),也是太长了。我看到一些回复建议将邮件转储到数据库并在其上运行一个cron作业,但在这种情况下,这不是一个真正的选择。
基本上,我想知道是否有办法在没有mail()
完成的情况下强制执行php脚本(页面加载)完成,或者我应该检查一些可能导致这花费这么长时间的配置。
答案 0 :(得分:0)
我在RHEL 4服务器上遇到过类似的问题,发现2个解决方案有效:使用PEAR邮件或使用外部smtp服务器(在我的情况下是gmail)。发送一个简单的联系表格从30 - 50秒到不到一秒钟。
我从未发现是什么导致它......
答案 1 :(得分:0)
从未遇到mail()
的问题,我发现它非常可靠。
答案 2 :(得分:0)
当我遇到类似的问题时,这是由于缺少规范的主机名。
看看/var/log/mail.err
:如果你看到
sendmail [31575]:无法限定我自己的域名(localhost) - 使用短名称"
那就是它!
然后你需要:
/etc/hosts
:your.ip.address your.host.name
/etc/hostname
中的主机名设置为:your.host.name