PHPMailer运行提示SMTP recipients failed错误如何解决
报错核心原因
该报错是你使用的SMTP服务器在发信校验阶段,直接拒绝了收件人地址shahirazrie@gmail.com,导致发信流程中断抛出PHPMailer异常。
排查与解决步骤
- 首先开启PHPMailer的SMTP调试日志,定位具体拒绝原因
在PHPMailer实例初始化完成后,添加代码$mail->SMTPDebug = 2;,该配置会输出SMTP服务器和客户端的完整交互日志,可以明确拿到服务器返回的具体拒绝原因(比如发件人权限不足、IP被限制、内容被判定为垃圾邮件等),是最高效的排查手段。 - 校验发件邮箱的SMTP配置正确性
如果你使用Gmail作为发件邮箱,需满足以下配置要求:- 发件邮箱已开启两步验证,且生成了专用的SMTP应用密码,不能直接使用邮箱账号的原登录密码作为SMTP登录凭证
- SMTP地址、端口、加密方式配置正确:Gmail官方SMTP地址为
smtp.gmail.com,SSL加密对应端口465,TLS加密对应端口587,加密类型不要配置错误 - 代码中配置的
From发件人地址,要和SMTP登录的邮箱地址完全一致,不一致会触发SMTP服务器的身份校验失败
- 检查收件人相关配置
- 确认
shahirazrie@gmail.com是真实有效的正常邮箱,不存在被封禁、容量已满等情况 - 检查
addAddress方法的参数顺序是否正确,第一个参数为收件人邮箱地址,第二个参数为可选的收件人名称,参数顺序写反会导致收件人格式校验失败
- 确认
- 测试邮件内容合规性
如果你当前发送的内容包含敏感词、链接、附件等容易被判定为垃圾邮件的内容,可以先替换为纯文本测试内容验证发信是否正常,排除内容触发反垃圾规则的可能性。
内容的提问来源于stack exchange,提问作者Shahir Azrie
相关产品推荐
相关产品推荐

