策略改成 p=reject 当天系统通知全部退回,退信写 550 5.7.1 rejected by DMARC policy。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
dig TXT _dmarc.example.com +short # v=DMARC1; p=none; rua=mailto:dmarc@example.com # 报告里重点看 alignment 一列
实际发件域和信封域没有对齐,SPF 或 DKIM 只过了一项而且对齐失败,严格策略下收件方只能直接拒收。这一点先确认清楚,后面就不用反复试。
「DMARC 策略拒收」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
具体做法是,先退回 p=none 把汇总报告收齐;按报告逐项修对齐问题;通过率达标之后再收紧策略。
改完照着核一遍,报告里对齐通过率接近百分之百,切回 reject 后退信归零。
