“没有记录”可能有两层含义
- 对组织域
example.com查询_dmarc.example.com,确实没有一条有效 DMARC Policy Record。 - 对发件子域
mail.example.com没有直接记录,但接收方可能继续向父域查找,并应用组织域的sp、np或ppolicy。
因此,子域直接记录缺失时,不应立刻断言邮件完全没有 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的处置值仍是none、quarantine或reject。t=y表示 policy 测试模式:失败邮件预期按低一级策略处理;默认t=n。- 旧版
pct已成为历史标签。当前标准用t承接测试语义,不应继续把任意百分比当成可靠执行比例。 sp与np分别处理既有和不存在的子域;没有适用标签时回退到p。
发布后的验证顺序
- 确认 DNS 只返回一条以
v=DMARC1开始的 policy record。 - 从每个真实发件平台发送测试邮件,检查 SPF、DKIM 和至少一条 DMARC 对齐路径。
- 接收并分析聚合报告,找出遗漏的合法平台、转发和冒用来源。
- 合法流量稳定后,再评估从
p=none进入测试模式或更强执行策略。
不要直接复制陌生域名的 DMARC 记录,也不要在未验证合法发件源时立刻使用 p=reject。错误的报告地址和过早执行都可能造成数据泄露或合法邮件受损。