场景

使用PHPMailer的SMTP发送邮件,用的是腾讯企业邮箱 smtp.exmail.qq.com
在邮箱设置里看到配置smtp方法

问题描述

  • 本地windows开发环境发送邮件100%成功
  • 远端linux实际环境发送邮件50%成功,50%超时。显示SMTP Error: Could not authenticate错误

解决过程

百度+goolge,类似的bug解决方法基本围绕以下几点:

  • sockets/openssl 扩展问题
  • php版本过低 fopensocket 问题
  • 用户密码(授权码)问题
  • smtp 端口

看了一圈,这些问题应该会导致所有邮件失败。跟我的诡异情况不符
后来看到一个:
phpmailer SMTP connect() failed的解决方法 -- http://www.ysweb.cn/bcl/qt/2014/1121/19.html

把 SSL/465 改成 TLS/587

抱着试试看的心态,因为QQ企业邮箱设置里没有说 tls 的说法,

居然成功了

居然成功了

居然成功了

居然成功了
居然成功了

(生无可恋)

05-20 18:18