← 返回博客
DNSMXSPFDKIMDMARC域名邮箱

域名邮箱 DNS 配置详解:MX、SPF、DKIM、DMARC

四条核心 DNS 记录各自的作用和常见配置错误,以及配完之后如何用工具验证每条记录是否生效。

更新于 2026年10月12日
域名邮箱 DNS 配置详解:MX、SPF、DKIM、DMARC

DNS 配置是域名邮箱能否正常收发信的基础。配置错误通常不会立即报错,而是表现为邮件被退回、落入垃圾箱或发信被拒。下面是四条核心记录各自的作用,以及常见的配置错误。

MX 记录

MX 记录告诉其他服务器往哪里投递你域名的邮件。每条 MX 记录有一个优先级数字,数字越小优先级越高。

@   MX   10   mx.rovela.dev.

常见错误:

  • 忘记结尾的点(.):在某些 DNS 控制台里,mx.rovela.dev 和 mx.rovela.dev. 的处理方式不同;结尾有点表示绝对域名,没有点可能被补上你的域名。Rovela 的控制台会自动处理这个问题。
  • 保留了旧的 MX 记录:切换服务商时旧记录没删,两条 MX 同时生效,邮件会随机投递到旧服务商。
  • 过早切 MX:邮箱还没建好就把 MX 指过来,导致邮件在过渡期间退回。

SPF 记录

SPF 是一条 TXT 记录,声明哪些 IP 或服务器被授权代表你的域名发信。

@   TXT   "v=spf1 include:spf.rovela.dev ~all"

~all(软失败)比 -all(硬拒绝)更常用于初始配置,减少误判。确认配置稳定后可以改成 -all。

常见错误:

  • 同一域名有两条 SPF 记录:SPF 规范要求每个域名只能有一条,第二条会导致验证失败。如果你有多个发信来源,把所有 include: 合并进同一条。
  • 超过 10 次 DNS 查询:SPF 有一个「最多触发 10 次 DNS 查询」的限制。include: 会递归查询,层级深了容易超限。

DKIM 记录

DKIM 是用公钥对邮件签名的机制。你在 DNS 里发布公钥,服务商用对应的私钥在发信时签名,收信方用 DNS 里的公钥验证签名没有被篡改。

mail._domainkey   TXT   "v=DKIM1; k=rsa; p=MIIBIjANBgkqhki..."

记录名是 <选择器>._domainkey,选择器由服务商指定(通常是 mail 或类似的字符串)。

常见错误:

  • 公钥格式:DNS TXT 记录有 255 字符限制,长公钥需要分成多段用引号括起来,某些控制台会自动处理,某些需要手动分段。
  • 选择器填错:mail._domainkey 里的 mail 必须和服务商指定的选择器完全一致。

DMARC 记录

DMARC 告诉收件方,如果 SPF 和 DKIM 都验证失败,该怎么处理这封邮件。

_dmarc   TXT   "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourcompany.com"

p=none 是观察模式,只收报告不拒绝邮件,适合初始配置。确认发信路径都通过验证后,逐步改成 p=quarantine 再到 p=reject。

常见错误:

  • 直接用 p=reject 但 SPF/DKIM 还没稳定:会导致自己发的邮件被拒收。
  • 没设 rua 报告地址:DMARC 报告帮你发现哪些发信来源没有通过验证,不配置的话等于盲跑。

验证工具

配好之后,可以用 MXToolbox、mail-tester.com 或者直接给 check-auth@verifier.port25.com 发一封邮件,它会回复一份详细的 SPF/DKIM/DMARC 验证报告。

Rovela 的域名页面在你添加域名后会自动列出所有需要的记录,并在你发布后实时检测每条记录的状态。