退信 554 5.4.14 'Hop count exceeded' 什么原因?
104
退信 554 5.4.14 "Hop count exceeded" 什么原因?
▼
原因
554 5.4.14 表示邮件在投递路径上经历了过多的 MTA 跳转(hop),超过了收件方服务器设定的最大跳数限制。RFC 5321 §4.3.7 规定每经过一个 MTA 需在邮件头中添加 Received 行——如果邮件在两个或多个 MTA 之间形成路由循环(loop),Received 行数量会累积到触发阈值。常见触发:DNS MX 记录形成循环指向、邮件转发规则自引用、DNS CNAME 链有环。
排查步骤
1. 检查 MX 记录指向:dig MX yourdomain.com → 确认 MX 优先级最高那条指向的服务器确实能收信,且不存在 A→B→A 的指向循环。
2. 检查邮件转发规则:Postfix 中 postconf virtual_alias_domains、postmap -q user@domain /etc/postfix/virtual 查询是否自引用。昆仑邮件系统管理后台 → 邮件流 → 转发规则。
3. 确认 DNS CNAME 没有循环:MX 记录指向的主机名不应是 CNAME(RFC 2181 §10.3),更不应形成 CNAME 链循环。
4. 查看退信邮件头 Received 链:从下往上逐跳读 Received 头,看是否有重复的 MTA 主机名出现——重复出现 = 循环。找出循环的起点和终点。
参考:RFC 5321 §4.3.7(Loop Detection)· Microsoft Docs: NDR 5.4.14 · RFC 2181(DNS CNAME 限制)
