文档首页> 技术教程> 邮件总进垃圾箱:SPF、DKIM、DMARC 三件套

邮件总进垃圾箱:SPF、DKIM、DMARC 三件套

发布时间:2026-08-27 16:14        更新时间:2026-08-28 13:03
邮件能不能进对方收件箱,取决于收件方能否验证这封信确实由你的域名发出、途中没被篡改。验证靠三条 DNS 记录:SPF、DKIM、DMARC,缺一个,送达率都会打折。没有验证的邮件,在伪造发件人泛滥的环境里天然被压低信任分。 一、三条记录各管什么 SPF 声明哪些 IP 有权替你发信,是一条 TXT 记录,例如 v=spf1 include:服务商域名 -all,末尾的 -all 表示清单之外的 IP 一律拒绝。DKIM 给每封邮件盖上加密签名,私钥在发信服务器手里,公钥放在 DNS 的 _domainkey 子域下,收件方验签确认内容没被改。DMARC 是裁判规则,告诉收件方前两项没过怎么办:p=none 只观察,p=quarantine 进垃圾箱,p=reject 直接拒收,同时把汇总报告发到指定邮箱。 二、配置顺序 先配 SPF 和 DKIM,用测试邮箱给自己发信,确认两项都通过,再上 DMARC。DMARC 的 p 值从 none 起步,观察一两周报告里有没有漏配的合法发信源,确认没有误伤后收紧到 quarantine,最后才是 reject。一步到位设 reject 的常见后果是:某个老系统的发信 IP 没进 SPF 清单,全公司的邮件瞬间被对方拒收。每次只调一档,DMARC 报告是 XML 格式,一周汇总看一次即可。 三、怎么验证 在服务器上直接查记录: dig TXT example.com dig TXT default._domainkey.example.com 也可以给自己发一封信,在邮件客户端里查看原始邮件源码,找 Authentication-Results 一行,spf、dkim、dmarc 各自的 pass 或 fail 写得清清楚楚。DNS 记录有传播延迟,验证前先确认 dig 查到的内容和配置一致再发测试信。常见错误有两个:SPF 的 include 层数太多,超出 10 次 DNS 查询上限,整条记录作废;DKIM 的 selector 名字和发信程序里配置的不一致,验签必然失败。 四、一点补充 发信域名和主站域名分开是常见的隔离做法:营销邮件哪天翻了车,至少不影响主域名下业务邮件的送达。记录值的每次改动都留档,将来更换邮件服务商时 SPF 的 include 要跟着改,漏改的典型表现就是突然大面积进垃圾箱。