理解 DMARC 记录及其核心组成
DMARC(基于域的消息认证、报告和一致性)是电子邮件安全领域的重要协议。一个完整的 DMARC 记录是以特定格式书写的 DNS TXT 记录,用于指导收件方邮件服务器如何处理未通过 SPF 或 DKIM 验证的来信。
在 DMARC 记录中,字符的大小写和标签顺序至关重要。记录必须以区分大小写的 v=DMARC1 开头,且 v=DMARC1 必须是第一个条目。如果顺序错误或未以此声明开头,收件方系统将无法将其识别为有效的 DMARC 记录。
DMARC 策略标签(p、sp、np)的运作机制
DMARC 的核心功能是通过策略标签定义邮件处置规则。这些策略决定了当邮件未能通过身份验证时,收件方服务器应当采取的操作:
- 主域名策略(p):定义主域名的基本处置策略。如果记录中未提供
p标签,域名策略将默认回退至none。 - 子域名策略(sp):专门应用于子域名的处置策略。
- 不存在的子域名策略(np):专门应用于不存在的子域名的处置策略。
在实际应用中,子域名策略具有层级回退机制。当更具体的标签缺失时,子域名策略会按照 np ➔ sp ➔ p 的顺序进行回退。
| 策略类型 | 行为与影响 |
|---|---|
p=none |
仅监控失败事件,不要求收件方对验证失败的邮件进行隔离或拒收。 |
t=y |
测试模式。在此模式下,会将 quarantine 策略降级为 none,并将 reject 策略降级为 quarantine。 |
SPF 与 DKIM 标识符对齐
该工具会提供有关 SPF 和 DKIM 对齐设置的信息。在 DMARC 摘要中,它会输出“DKIM / SPF”这一标识符对齐信息。
配置 DMARC 报告接收地址(rua 与 ruf)
DMARC 提供了强大的监控反馈机制,允许管理员接收两类报告以分析域名的发送状况:
- 聚合报告(rua):用于接收每日的发送数据汇总。如果记录中没有有效的
rua地址,则表示未请求聚合报告。 - 失败报告(ruf):用于接收单封验证失败邮件的详细信息。
在配置报告时,需要注意以下规则与历史遗留问题:
fo标签的依赖性:如果记录中没有配置有效的ruf失败报告接收地址,则fo标签将被忽略。!size后缀失效:在报告 URI 中使用的!size后缀在当前的接收方标准中已经废弃,现代收件服务器会直接忽略该后缀。
历史遗留标签与最新标准变化
随着 DMARC 标准的演进,部分标签的定义和支持情况发生了变化。了解这些变化有助于精简记录并提升兼容性:
pct比例标签:pct标签属于历史遗留配置。它仅对仍在使用旧版 DMARC 规范的收件方限制策略覆盖范围,在现代标准中已不再推荐。- 历史标签与未知标签:工具会识别出历史标签(如在当前 DMARC 标准中已归为历史标准的标签)。遵循当前最新标准的收件系统可以直接忽略这些历史标签或未注册的未知标签。
常见 DMARC 语法错误与规避
在配置 DNS TXT 记录时,格式微调极易出错。以下是常见的语法问题:
- 格式畸变:未采用分号分隔的
name=value键值对格式。 - 标签重复:在同一条记录中多次声明同一个标签。
- 值缺失:声明了标签却未赋予具体数值。
- 无效的 URI:报告接收地址格式不正确,导致收件方无法发送报告。
本工具支持解析带引号的 DNS TXT 分段,并在分析前自动将这些分段合并,以还原真实的记录内容。
浏览器端本地解析与隐私说明
本工具的解析与检查过程完全在您的浏览器本地完成。您输入的 DMARC TXT 记录不会被上传或保存至服务器,输入内容不会写入浏览器本地存储,且在分析过程中不会向外部发送任何与该记录相关的网络请求。
常见问题解答
语法和策略提示: p / sp / np?
当 DMARC 记录中未显式配置子域策略时,系统会执行回退逻辑。具体而言,不存在的子域名策略会从 np 回退至 sp,再回退至 p。若配置了 p=none,则仅用于监控,不要求收件方隔离或拒收邮件。若处于测试模式 t=y,收件方会将 quarantine 降级为 none,将 reject 降级为 quarantine。
RFC 9989: pct / rf / ri?
根据最新的 RFC 9989 标准,pct、rf 和 ri 标签已被归类为历史遗留(historic)标签。而在当前标准中,np、psd 和 t 标签属于活跃(active)标签。
检查结果无问题是否能证明我的 DMARC 配置有效?
不能。此页面只检查您粘贴的文本,不会查询 DNS、展开服务商记录、测试发件人 IP,也不会确认收件邮件服务器将返回什么结果。
为什么提示我的 fo 标签被忽略了?
因为您的 DMARC 记录中没有配置有效的 ruf 失败报告接收地址。在没有有效 ruf 地址的情况下,用于定义失败报告触发条件的 fo 标签将失去作用,收件方会直接忽略该设置。