@邮件域名体检

DMARC · RFC 9989

No DMARC record found:未找到 DMARC 记录

先区分“当前主机名没有直接记录”和“整个 policy discovery 没有找到可应用策略”。RFC 9989 允许从 Author Domain 向父域执行受限 DNS Tree Walk。

“没有记录”可能有两层含义

  • 对组织域 example.com 查询 _dmarc.example.com,确实没有一条有效 DMARC Policy Record。
  • 对发件子域 mail.example.com 没有直接记录,但接收方可能继续向父域查找,并应用组织域的 spnpp policy。

因此,子域直接记录缺失时,不应立刻断言邮件完全没有 DMARC。域名体检会按 RFC 9989 执行受限 DNS Tree Walk,并显示父域 policy discovery 的查询路径、策略域和最终适用标签。

如果检查的是企业主域且 _dmarc 确实不存在,接收方通常没有该域声明的 DMARC 处置偏好,也无法按该记录请求聚合报告。

从监控记录开始

先盘点所有合法发件平台,确认 SPF 或 DKIM 至少一条路径可以与可见 From: 域对齐,再发布唯一的 DMARC TXT 记录。

主机名:_dmarc.example.com
类型:TXT
值:v=DMARC1; p=none; rua=mailto:dmarc@example.com

示例地址必须替换为你控制或明确授权的报告接收地址。RFC 9990 定义聚合报告格式;第三方报告目的地还涉及 DNS 授权与数据保留边界。

RFC 9989 的当前标签

  • p 的处置值仍是 nonequarantinereject
  • t=y 表示 policy 测试模式:失败邮件预期按低一级策略处理;默认 t=n
  • 旧版 pct 已成为历史标签。当前标准用 t 承接测试语义,不应继续把任意百分比当成可靠执行比例。
  • spnp 分别处理既有和不存在的子域;没有适用标签时回退到 p

发布后的验证顺序

  1. 确认 DNS 只返回一条以 v=DMARC1 开始的 policy record。
  2. 从每个真实发件平台发送测试邮件,检查 SPF、DKIM 和至少一条 DMARC 对齐路径。
  3. 接收并分析聚合报告,找出遗漏的合法平台、转发和冒用来源。
  4. 合法流量稳定后,再评估从 p=none 进入测试模式或更强执行策略。

不要直接复制陌生域名的 DMARC 记录,也不要在未验证合法发件源时立刻使用 p=reject。错误的报告地址和过早执行都可能造成数据泄露或合法邮件受损。

官方来源