DMARC 聚合报告(rua XML)收到了看不懂,XML里一堆数据怎么看?SPF/DKIM 对齐(alignment)是什么?

59 DMARC 聚合报告(rua XML)收到了看不懂,XML里一堆数据怎么看?SPF/DKIM 对齐(alignment)是什么?
什么是 DMARC 报告

设置 rua=mailto:你@你的域名.com 后,支持 DMARC 的收件方(Gmail、Outlook、Yahoo 等)每天给你发一封或多封 ZIP 压缩邮件,里面是 XML 格式的聚合摘要报告——报告过去 24 小时内你的域名被哪些 IP 发信、发多少封、过没过 SPF/DKIM 验证、DMARC 最终结果。

如何读取 XML

一条报告记录的关键字段:
<source_ip>:发信的源 IP 地址
<count>:从这个 IP 发了多少封
<disposition>:收件方实际处理(none=正常入收件箱,quarantine=入垃圾箱,reject=拒收)
<spf>result/pass|fail:SPF 验证结果
<dkim>result/pass|fail:DKIM 验证结果
<header_from>:你在 DMARC 中指定的 Header From 域名
<policy_evaluated>dkim/spf:DMARC 对齐判定(not just pass, but aligned)

SPF/DKIM 对齐(Alignment)

DMARC 要求不仅要 SPF/DKIM pass,还要"域名对齐"——即验证的域名必须与 From 头显示域名一致:
Strict(严格对齐):SPF 域=From 域、DKIM d=From 域(完全匹配)
Relaxed(宽松对齐):组织级域名相同(如 mail.example.com 与 example.com 也算对齐)
常见坑:你的 SPF pass 了但域名不对齐——因为 MAIL FROM 用的不是你自己的域名(比如用 SendGrid 发信但 MAIL FROM 是 sendgrid.net → SPF 对齐失败 → DMARC fail)。解决办法:第三方发信服务要配置自定义 MAIL FROM 域名。

报告分析工具

原始 XML 量很大(一天几千条),手动看不现实。免费工具:
dmarcian.com(Web 界面,免费基础版)
parsedmarc(开源 Python CLI:pip install parsedmarcparsedmarc --file=report.xml 自动生成 CSV/JSON)
MXToolbox DMARC Analyzer(在线简单查看)
URIports(免费基础版)
建议选一个工具配置定期自动解包,人工看不过来。

参考:RFC 7489(DMARC)· DMARC.org · parsedmarc 项目主页