退信'553 sorry, your envelope sender domain must exist',收件方回调验证我的发件域失败了,和我 DNS 配置正常有什么关系?
这和 Q55(DNS 查不到域名)不同——你的 DNS 在你自己这边查是正常的(MX/A/CNAME 都有),但收件方用了 Postfix sender address verification(发件地址回调验证):收件方服务器不只是查 TXT 记录,而是主动向你的域名发 SMTP 连接,假装要发一封邮件到你的 MAIL FROM 地址,看你的服务器会不会接受。如果回调连接失败或返回地址无效,就拒收。可能原因:(1) 你的邮件服务器 25 端口从收件方网络不可达——你只开了 587 提交端口但 25 端口被防火墙拦截;(2) 你用的是纯发信环境(send-only),没有收信 MX、25 端口未开放;(3) 你的 MAIL FROM 域名和实际发信服务器不是同一个主体——对方回连到 MAIL FROM 的 MX 后发现不存在该邮箱;(4) DNS 区域线路限制——你的 A/MX 记录只对国内 DNS 生效,海外收件方的 DNS 查不到。
1. 测试 25 端口连通性:从外网环境 telnet your-mx-hostname 25,确认返回 220 开头的 SMTP 欢迎信息。
2. 不要关 25 端口:586/587 是提交端口,邮件服务器之间的传输走 25 端口。如果你关了 25 或只允许 587——对方 MTA 无法回连验证。
3. 配置 Postfix sender verify 白名单(如果可以控制收件方):在收件方 /etc/postfix/main.cf 中 smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access。
4. 联系收件方 IT:说明你的域名 DNS 正常,请对方将你的发件地址/发件域加入 sender verify 例外列表。
5. 确保 MAIL FROM 域名的 MX 指向可连接的服务器:使用免费邮箱服务(如阿里企业邮箱、Gmail SMTP)的 MAIL FROM 改为它们自己的域名,它们保证 25 端口可达。
参考:Postfix verify(8) 手册 · RFC 5321 §3.2
