很可能是端口问题,最好把$mailer->SMTPSecure和$mailer->Port分别设置为ssl与465或者tls与587,否则某些浏览器不接受不安全的链接,导致$mailer->send()时非常慢,从而导致SMTP connect() failed(我最初就是没有设置$mailer->SMTPSecure和$mailer->Port,然后在某些主机上发不出邮件)

顺便介绍一个不规范的异步处理思路:

当主机上没有redis和队列组件时,可以把发送邮件单独些写成一个脚本,并由system()命令调用:

system("php sendMail.php '" . $parameters . "' >/dev/null &");

传入我们想要参入,如邮箱地址、标题、内容等

一定不要忘记最后的“&”,否则不在系统后台运行,php会等待邮件发送完成,那就不是异步了

这种方法可以作为异步的临时方案

posted on 2018-12-02 10:57  SHQHDMR  阅读(396)  评论(0编辑  收藏  举报