PHPMailer无配置改动突然出现SMTP ERROR 无法发送邮件问题咨询
PHPMailer 邮件发送失败排查方案
故障根因定位
从提供的调试日志可以确定核心错误为
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed,属于SSL握手阶段的服务端证书校验失败,导致加密连接无法建立,最终触发SMTP连接失败报错。未修改本地配置的前提下,故障通常由SMTP服务端证书变更/过期、服务器本地CA根证书库过期两类原因导致。
排查解决步骤
- 校验SMTP服务端证书有效性
登录业务服务器,在命令行执行以下OpenSSL命令校验目标SMTP端口的证书状态:openssl s_client -connect 46.105.44.1:465 -starttls smtp
查看返回结果中的证书有效期、颁发主体、匹配域名信息,如果确认服务端证书过期、更换为自签名证书或者域名不匹配,联系对应的邮件服务商确认证书变更情况。 - 更新服务器本地CA根证书库
若服务端证书状态正常,可判定是本地CA根证书库未收录该证书的颁发机构根证书导致校验失败,根据服务器操作系统执行对应更新命令:- Debian/Ubuntu 系列:
apt update && apt install ca-certificates && update-ca-certificates - CentOS/RHEL 系列:
yum update ca-certificates && update-ca-trust force-enable
证书库更新完成后重试邮件发送即可。
- Debian/Ubuntu 系列:
- 临时应急方案(不推荐长期使用)
若需要快速恢复业务,可临时在PHPMailer配置中关闭SSL证书校验,验证业务链路是否正常,该操作会降低邮件传输安全性,恢复后需尽快排查根因恢复校验配置:$mail->SMTPOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ];
内容的提问来源于stack exchange,提问作者E_cook
相关产品推荐
相关产品推荐

