技术解析 · 附来源的解答
DMARC:基于域名的邮件身份验证、报告和一致性
DMARC 是一种邮件身份验证协议,它使用 SPF 和 DKIM 来验证发件人身份。域名所有者可以在 DNS 记录中发布策略,指定收件邮件服务器应如何处理未通过身份验证检查的邮件。
工作机制
DMARC 通过检查 From 头中的域名与 SPF、DKIM 所验证的域名之间是否对齐来工作。如果邮件通过了 SPF 或 DKIM 中的任意一项,且域名与 From 头匹配,就符合 DMARC 要求。如果两者都失败或都未对齐,收件方会应用 DMARC DNS 记录中定义的策略:none、quarantine 或 reject。
对发件人的重要性
DMARC 可以防止未经授权的第三方伪造域名发送钓鱼邮件。通过将策略从 none 逐步收紧到 reject,发件人可以确保只有经过身份验证的邮件才能到达收件人。这能降低品牌被冒充的风险,并帮助您在各大邮件服务商那里保持良好的发件人信誉。
运维注意事项
一个常见错误是在分析报告数据之前就实施 reject 策略。发件人应从 p=none 开始,监控那些可能未通过身份验证的合法第三方发件方。在执行可能拦截有效邮件的严格策略之前,使用 SendHQ 或其免费工具(https://sendhq.cc/tools)可以帮助发现这些缺口。
具体示例
DMARC 记录是位于 _dmarc.example.com 的一条 TXT 记录。示例记录 v=DMARC1; p=quarantine; rua=mailto:reports@example.com 告诉收件方将未通过验证的邮件放入隔离文件夹,并将 XML 汇总报告发送到指定的邮箱地址以供分析。
报告机制
DMARC 提供两种报告。汇总报告(RUA)提供宏观数据,显示哪些 IP 在代表该域名发送邮件及其身份验证状态。取证报告(RUF)提供单封验证失败邮件的详细副本,便于深入排查投递问题。
团队常问的问题
DMARC 会取代 SPF 和 DKIM 吗?
不会,DMARC 建立在 SPF 和 DKIM 之上。它要求至少其中一项存在且已对齐,才能验证发件人身份。
quarantine 和 reject 有什么区别?
quarantine 告诉收件方将验证失败的邮件放入垃圾邮件文件夹,而 reject 告诉收件方直接拦截该邮件。
什么是 DMARC 对齐?
当邮件中可见的 From 头域名与 SPF 记录或 DKIM 签名所验证的域名相匹配时,即为对齐。
一手资料
- RFC 7489:基于域的消息认证、报告与一致性(DMARC) — RFC Editor
- RFC 7208:发件人策略框架(SPF) — RFC Editor
- RFC 6376:DomainKeys 识别邮件(DKIM) — RFC Editor