退信 550 5.7.1 'Unable to relay' 怎么排查?

98 退信 550 5.7.1 "Unable to relay" 怎么排查?
原因

550 5.7.1 "Unable to relay" 表示 SMTP 服务器拒绝了中继请求——发信连接未通过认证,服务器认为发件人在试图利用它转发外部邮件。触发场景:客户端未启用 SMTP AUTH 认证、IP 不在中继白名单内、发件域与服务器管辖域不匹配。注意这属于配置问题而非内容拦截,确定可修复。

排查步骤

1. 确认 SMTP 认证已启用:邮件客户端(Outlook/Foxmail/Thunderbird)账户设置 → 发送服务器 → 勾选"服务器需要身份验证",选择"使用与接收服务器相同设置"。
2. 验证 AUTH LOGIN/PLAIN 是否通过
openssl s_client -connect smtp.yourdomain.com:587 -starttls smtp
EHLO test
AUTH LOGIN → 输入 Base64 编码的用户名和密码 → 应返回 235 2.7.0 Authentication successful
3. 检查 mynetworks 配置:Postfix 中 postconf mynetworks 确认本地子网在列表中。昆仑邮件系统管理后台 → 安全设置 → 中继白名单。
4. 确认不是 open relay:在 MXToolbox SMTP Test 中检查,不应允许未经认证的外部中继。
5. 代码发信:PHPMailer/Python smtplib 中确保调用了 smtp.login(user, password) 而非直接 sendmail。

参考:RFC 4954(SMTP AUTH)· RFC 5321 §3.8.1(Relaying)· Postfix smtpd_relay_restrictions 文档