先匹配完整 SMTP 响应
Google 的错误表也使用 504 5.7.40 表示无法识别认证类型或不再支持 XOAUTH。只有完整响应明确提到 DMARC record 或 DMARC policy 时,才按本页处理;不要只凭增强状态码判断。
DMARC 使用 RFC5322 From: 中的 Author Domain。不要把退信地址、MAIL FROM、Return-Path 或 Gmail 收件域误当作 DMARC policy 查询域。
按 RFC 9989 查找策略
- 先查询
_dmarc.AuthorDomain,并只接受一条以v=DMARC1开始的 policy record。 - 若当前域没有有效记录,执行最多 8 次查询的受限 DNS Tree Walk,继续检查父域、组织域和可能的公共后缀策略。
- 若应用父域记录,既有子域优先使用
sp,不存在的子域优先使用np,没有相应标签时回退到p。 - 同一查询目标返回多条 DMARC policy record 时,这些记录会被丢弃,不能视为有效策略。
域名体检会展示实际查询路径、选中的 policy domain,以及最终应用的 p、sp 或 np。
记录存在但没有 policy
p、适用的 sp 或 np 必须是 none、quarantine 或 reject。RFC 9989 规定:若适用值缺失或无效,但 rua 至少包含一个语法有效的报告 URI,接收方按 p=none 继续;否则不应用 DMARC。
主机名:_dmarc.example.com 类型:TXT 值:v=DMARC1; p=none; rua=mailto:dmarc@example.com
示例地址必须是域名所有者控制或明确授权的聚合报告目的地。先在监控模式核对全部合法发件源和对齐结果,再评估更强策略。
发布后验证对齐
修复 5.7.40 只解决记录或 policy 缺失。批量邮件还需要 SPF 与 DKIM,并让至少一种通过的身份与可见 From: 域完成 DMARC 对齐。等待 DNS TTL 后从真实平台发送新邮件,以新的 Authentication-Results 和 SMTP 响应为最终证据。
不要为了消除错误直接发布未经验证的 p=reject,也不要复制陌生域名的 rua。前者可能阻断合法邮件,后者可能把认证报告发送给未授权第三方。