我正在使用PHP mail()函数从Linux服务器发送电子邮件,但使用Exchange作为主要MTA.为了实现此目的,已设置sendmail来将所有内容中继到本地Exchange服务器,然后该服务器将电子邮件发送出去.
这可以正常工作,但是PHP脚本似乎要等到超时限制后才能完成.我以为它可能正在等待sendmail的响应,而这仅仅是中继吗?
我为“ sendmail_path” -odb指定了php.ini命令行选项,该选项应以“后台”传递模式启动sendmail,这意味着在单独的过程中触发电子邮件,然后立即返回.但是,PHP脚本结束仍需要30秒.
有人有想法么?我有点难过.
谢谢.
解决方法:
间接解决方案.
我们要做的是使用php的system()在后台发送电子邮件,因此用户不必等待电子邮件发送出去.
像这样的东西
<?php //sendEmail.php
mail($argv[1], $argv[2], $argv[3]);
?>
您的脚本:
<?php
...
system("php sendEmail.php to@address.com 'subject' 'message' 1>/dev/null 2>&1 &");
...
?>