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 保持一致。

对齐规则:

DKIM 对齐

DKIM 对齐仍然基于 DKIM 签名中的 d=<domain> 域(签名域)与 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 明确了处理顺序:

  1. 接收方应尝试每个 DKIM 签名,只要有一个签名通过验证且其 d= 与 Header.From 对齐,即视为 DKIM 对齐通过
  2. 如果没有任何 DKIM 签名通过对齐检查,则 DKIM 对齐失败
  3. 签名验证失败的 DKIM 签名(body hash mismatch 或签名无效)不参与对齐检查

2.3 SPF 对齐中的"中性失败"处理

原 RFC 7489 对 SPF 的"中性"(neutral, ?all)结果是否算作 SPF 通过以用于对齐,没有明确规定。DMARCbis 确认:

三、对齐失败的诊断辅助

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 不匹配。

四、常见对齐配置错误

参考文献

  1. RFC 9989 Section 6.5 — SPF and DKIM Alignment
  2. RFC 7489 Section 3.1 — Original alignment definition (obsoleted)
  3. RFC 9991 — alignment reporting fields
  4. 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