邮箱域名配置:MX / SPF / DKIM / DMARC 不进垃圾箱
用四类 DNS 记录给域名邮件建立完整的身份与信任链,显著提升送达率、避免被标记为垃圾邮件。
当你用自己的域名(例如 example.com)收发邮件时,收件方服务器会通过一组 DNS 记录判断:这封信该投到哪、是不是真的由你授权、有没有被篡改、以及被伪造时该怎么处理。配好 MX、SPF、DKIM、DMARC 这四件事,是邮件能进收件箱而不是垃圾箱的基础。
MX:告诉别人往哪投递
MX(Mail Exchanger)记录声明「负责接收本域邮件的服务器」。它决定入站邮件的去向,和发信信誉无关,但缺失会导致收不到信。数值越小优先级越高。
example.com. IN MX 10 mx1.mailprovider.com.
example.com. IN MX 20 mx2.mailprovider.com.
- 优先使用邮箱服务商提供的主机名,别直接指向 IP。
- 主备两条即可,10 为主、20 为备。
SPF:声明谁能替我发信
SPF(Sender Policy Framework)是一条 TXT 记录,列出「被允许用本域名发信的服务器」。收件方核对发信 IP 是否在名单内。
example.com. IN TXT "v=spf1 include:_spf.mailprovider.com ~all"
- include: 引入服务商的授权范围;自建邮件服务器可用 ip4:/ip6: 直接列出。
- 结尾 all 表示「软失败」(其他来源可疑但先收下),-all 为「硬失败」(直接拒绝),更严格但需先确认所有发信源都已列全。
- 一个域只能有一条 SPF 记录,多来源要合并进同一条;include 查询总数不得超过 10 次。
DKIM:给每封信盖上防伪签名
DKIM(DomainKeys Identified Mail)用私钥对邮件正文和头部签名,收件方用发布在 DNS 里的公钥验签,证明内容未被篡改。公钥同样是 TXT 记录,放在 <选择器>.domainkey 子域下。
s1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQ..."
- 选择器(这里是 s1)由邮箱服务商生成,公钥内容直接复制其提供的字符串即可。
- 私钥保存在发信服务器,永远不放进 DNS。
DMARC:定策略,收报告
DMARC 建立在 SPF 与 DKIM 之上:当二者的域名对齐校验失败时,按你设的策略处置,并把结果汇总寄给你。它是一条 TXT 记录,固定放在 dmarc 子域。
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; adkim=s; aspf=s"
- p= 策略从宽到严:none(仅观察报告)→ quarantine(进垃圾箱)→ reject(拒收)。
- 建议先上 p=none,用 rua 收几周聚合报告确认合法邮件全部通过,再逐步收紧到 quarantine、reject。
- 三者配合:SPF 与 DKIM 提供验证,DMARC 决定失败后的动作并给你可见性,缺一环都容易被冒名或误判。
验证配置是否生效
改完记录后,DNS 有传播延迟(通常几分钟到数小时,取决于 TTL)。用命令行 dig 或在线工具(如 MXToolbox)检查:
dig +short MX example.com
dig +short TXT example.com # 查看 SPF
dig +short TXT s1._domainkey.example.com # 查看 DKIM
dig +short TXT _dmarc.example.com # 查看 DMARC
Windows 下可用 nslookup -type=TXT example.com。最后给自己或 Gmail、Outlook 发一封测试邮件,查看邮件头里的 Authentication-Results,确认 spf=pass、dkim=pass、dmarc=pass。
小结
MX 负责「收」,SPF、DKIM、DMARC 负责「发得可信」。按顺序配好:MX 指向邮件服务器,SPF 用一条 TXT 列出授权发信源,DKIM 发布公钥给邮件盖签名,DMARC 从 p=none 起步观察再逐步收严。全部用 dig 或在线工具验证,并读一封测试邮件的认证结果。四者齐备,你的域名邮件才能稳定进入收件箱,而不是垃圾箱。