是否可以使用phpmailer发送异步电子邮件?
普通邮件发送代码段如下:
$mail->Send();
PHP在继续之前等待Send()返回结果。有没有可能让phpmailer立即返回结果,而无需等待真正的电子邮件发送例程完成。
答案 0 :(得分:8)
2016年5月更新
正如用户@Sinak Salek所提到的,PHP确实支持多线程。 它可以使用pthreads扩展名。
<强>原始强>
PHP本身不支持多线程(你需要做得很漂亮)。您可以通过将电子邮件保存在数据库中然后使用其他脚本(例如,使用cron作业)来处理它们。这样您就不必等待底层的电子邮件框架。
另一件事,如果phpmailer很慢,可能是由于底层邮件程序(sendmail,postfix等)安装不正确。
答案 1 :(得分:0)
如果您使用的是Linux,则可以将php脚本放入exec命令并在后台启动(在命令末尾放置&amp;)和静默模式(2&gt;&amp; 1&gt; / dev /空)