DMARC(RFC 7489)策略从监控阶段转向强制执行时出现误拦,通常源于以下三个原因:
1. SPF 对齐失败。DMARC 要求 SPF 认证通过的同时,Mail-From 域与 From 头域必须严格匹配(对齐)。如果邮件通过第三方平台代发(如邮件营销系统),Mail-From 变为 bounce@thirdparty.com,SPF 虽然 pass 但域不对齐,DMARC 判为 fail。解决方法是改用 DKIM 对齐。
2. DKIM 签名域与发件域不匹配。DKIM 签名中的 d= 域必须与 From 头域一致(严格对齐)或为其子域(宽松对齐)。若 DKIM 使用服务商的域签名,可设置 aspf=r 启用宽松对齐模式,或者在主域下配置自己的 DKIM 选择器并签名。
3. 邮件转发(Forwarding)破坏认证。邮件经过转发后,SPF 几乎必然失效(因为转发服务器不在原域 SPF 记录中)。DMARC 检查时 SPF 不通过且 DKIM 未被保留,导致拦截。建议发信方部署 ARC(Authenticated Received Chain,RFC 8617)以保证转发链路的认证连续性。
排查步骤:查看被拦截邮件的原始头,找到 Authentication-Results 字段,对比 spf=、dkim= 和 dmarc= 的值。如果 dmarc=fail,具体看是 spf align 还是 dkim align 出了问题。若为 SPF 对齐失败,优先加固 DKIM 对齐;若 DKIM 签名丢失,联系转发方配置 ARC。
参考:RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC), §6.6(Alignment);RFC 8617 — Authenticated Received Chain (ARC)
