邮件退信代码 550 5.1.1 User Unknown 怎么区分用户不存在 vs 被拒收?
RFC 5321 §3.1 定义 550 5.1.1 原意是"邮箱不存在"。但实际运营中,许多接收方 MTA(尤其是 Microsoft 365、国内大厂邮箱)将其挪用作"我不想要这封邮件"的通用拒绝码。无法仅凭代码下结论。
1. 看 Enhanced Status Code 的后缀:
— 5.1.1 标准定义是 "mailbox does not exist",但很多 MTA 不诚实。
— 5.7.1 明确表示 sender rejected 或 content rejected。
— 如收到 550 5.1.1 User unknown 再附一句 but your email was rejected by policy,说明非用户问题。
2. 对比测试法:
— 用另一个完全不同的发送 IP 和域名(比如 Gmail 个人号)给同一地址发信,如果能送达 → 是你被拒收,不是地址问题。
— 如果也退 5.1.1 → 大概率地址真不存在。
3. 检查退信正文中是否含疑似规则触发词:
— "policy"、"bulk"、"spam"、"reputation"、"blacklisted" → 你被拒收。
— "invalid"、"doesn't exist"、"unknown" → 地址问题。
4. 批量场景:用 mailq | grep -c "5.1.1" 统计,如果同时有十几个域都报 5.1.1,排除全域同时不存在,大概率是发送信誉触发了对方的全局拒收。建议立即暂停该 IP 发送,改用中继 IP 测试。
RFC 5321 §3.1 (Mailbox Specification) · RFC 3463 §3.1 (Permanent Failure Status) · RFC 7372 (Email Authentication Failure Reports)
