DMARCbis 如何处理 SPF 和 DKIM 的对齐(alignment)要求?SPF 对齐是否仍然只依赖 RFC5321.MailFrom?
对齐(Alignment)是 DMARC 评估的核心机制——它判断 SPF 和/或 DKIM 验证通过的域是否与邮件 Header.From 中的域一致。DMARCbis 在保留原有对齐概念的基础上,对多个边缘情形进行了细化和澄清。
一、对齐的基本概念(RFC 9989 确认)
SPF 对齐
DMARCbis 确认 SPF 对齐仍然只基于 RFC5321.MailFrom(即 Return-Path / envelope-from)。这一立场与 RFC 7489 保持一致。
对齐规则:
- 宽松模式(aspf=r):MailFrom 域是 Header.From 域或其子域即视为对齐(如 MailFrom=news.example.com,Header.From=example.com → 对齐)
- 严格模式(aspf=s):MailFrom 域必须与 Header.From 域完全一致(如 MailFrom=example.com,Header.From=example.com → 对齐;MailFrom=mail.example.com → 不对齐)
DKIM 对齐
DKIM 对齐仍然基于 DKIM 签名中的 d=<domain> 域(签名域)与 Header.From 域进行比对:
- 宽松模式(adkim=r):DKIM d= 域是 Header.From 域的子域即视为对齐
- 严格模式(adkim=s):DKIM d= 域必须与 Header.From 域完全一致
二、DMARCbis 中对齐规则的细化
2.1 子域对齐的边界情形
RFC 9989 第 6.5 节澄清了一个长期存在的边界情形:当 Header.From 本身是子域时如何对齐?
案例:Header.From: user@sub.example.com
MailFrom: bounce@example.com
宽松模式:MailFrom=example.com,Header.From=sub.example.com
→ 虽然 Header.From 是子域,但 MailFrom 是父域
→ 宽松模式下判定:对齐(MailFrom 域与 Header.From 域的组织域相同)
这一澄清对邮件列表和转发场景尤其重要。
2.2 多 DKIM 签名时的对齐选择
一封邮件可能包含多个 DKIM 签名。原 RFC 7489 对此未作明确规定。DMARCbis 明确了处理顺序:
- 接收方应尝试每个 DKIM 签名,只要有一个签名通过验证且其 d= 与 Header.From 对齐,即视为 DKIM 对齐通过
- 如果没有任何 DKIM 签名通过对齐检查,则 DKIM 对齐失败
- 签名验证失败的 DKIM 签名(body hash mismatch 或签名无效)不参与对齐检查
2.3 SPF 对齐中的"中性失败"处理
原 RFC 7489 对 SPF 的"中性"(neutral, ?all)结果是否算作 SPF 通过以用于对齐,没有明确规定。DMARCbis 确认:
- SPF 结果必须是 'pass' 才能用于对齐
- neutral(?all)结果不能用于满足对齐要求
- softfail(~all)结果不能用于满足对齐要求
- temperror 和 permmerror 视为 SPF 未通过
三、对齐失败的诊断辅助
DMARCbis 的 RFC 9991 报告格式在 <auth_results> 中新增了 <aligned> 字段,帮助发送方快速定位对齐失败的原因:
<auth_results>
<spf>
<domain>example.com</domain>
<scope>mfrom</scope>
<result>pass</result>
<aligned>yes</aligned>
</spf>
<dkim>
<domain>other.com</domain>
<result>pass</result>
<selector>s2026</selector>
<aligned>no</aligned>
<aligned_reason>dkim-domain-not-equal-to-from-domain</aligned_reason>
</dkim>
</auth_results>
上例中,SPF 对齐成功(aligned=yes),但 DKIM 对齐失败(aligned=no),原因是 DKIM 的 d=other.com 与 Header.From 的 example.com 不匹配。
四、常见对齐配置错误
- 第三方 ESP 发信未对齐:ESP 使用自己的 DKIM d= 签名,但 Header.From 是你的域。需要 ESP 使用你的域签名或配置双签
- SPF 的 Return-Path 与 Header.From 不一致:某些 ESP 会将 Return-Path 修改为自己的域名进行 SPF 验证,导致对齐失败
- 使用子域发送邮件:aspf=strict 模式下,mail@news.example.com 由 mail.example.com MX 接收时,MailFrom 必须也是 news.example.com
参考文献
- RFC 9989 Section 6.5 — SPF and DKIM Alignment
- RFC 7489 Section 3.1 — Original alignment definition (obsoleted)
- RFC 9991 — alignment reporting fields
- RFC 7208 Section 8 — SPF Result Interpretation
引用格式:ztpop.net 邮件技术知识库. "DMARCbis SPF/DKIM 对齐要求详解." https://www.ztpop.net/kb/faq/dmarcbis-faq-08.html. 2026-07-29. CC-BY 4.0