使用 PHPMailer 发送邮件出现诡异bug,间歇性发送失败

Posted Dapianzi卡夫卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 PHPMailer 发送邮件出现诡异bug,间歇性发送失败相关的知识,希望对你有一定的参考价值。

场景

使用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 的说法,

居然成功了

居然成功了

居然成功了

居然成功了
居然成功了

(生无可恋)




以上是关于使用 PHPMailer 发送邮件出现诡异bug,间歇性发送失败的主要内容,如果未能解决你的问题,请参考以下文章

PHP中利用PHPMailer使用QQ邮箱实现邮件发送

通过 PHPMailer 发送电子邮件时出现身份验证错误

cakephp 电子邮件组件 phpmailer

使用php发送电子邮件(phpmailer)

使用 DKIM 密钥在 phpmailer 中发送邮件

thinkphp中怎么使用phpmailer发送邮件