邮件记录配置实战
以 Google Workspace 为例,完整配置 MX、SPF、DKIM、DMARC 四类记录,其他邮件服务(SendGrid、Mailgun)流程类似。
配置前的准备
- 确认你使用的邮件服务(Google Workspace、Zoho、Fastmail、SendGrid 等)
- 登录该邮件服务后台,找到 DNS 配置指南
- 记录当前所有 DNS 记录(备份,以防配置出错)
Step 1:配置 MX 记录
MX 记录告诉其他邮件服务器,发给 @example.com 的邮件该送到哪。
Google Workspace 的 MX 记录:
| 类型 | 名称 | 值 | 优先级 | TTL |
|---|---|---|---|---|
| MX | @ | aspmx.l.google.com | 1 | 3600 |
| MX | @ | alt1.aspmx.l.google.com | 5 | 3600 |
| MX | @ | alt2.aspmx.l.google.com | 5 | 3600 |
| MX | @ | alt3.aspmx.l.google.com | 10 | 3600 |
| MX | @ | alt4.aspmx.l.google.com | 10 | 3600 |
验证:
dig example.com MX
# 应该看到 google 的 MX 记录
# example.com. 3600 IN MX 1 aspmx.l.google.com.
Step 2:配置 SPF 记录
Google Workspace SPF:
类型: TXT
名称: @(即 example.com)
值: "v=spf1 include:_spf.google.com ~all"
TTL: 3600
如果同时用多个发件服务(常见组合):
# Google Workspace + SendGrid
"v=spf1 include:_spf.google.com include:sendgrid.net ~all"
# Google Workspace + Mailgun + 自己的服务器
"v=spf1 include:_spf.google.com include:mailgun.org ip4:203.0.113.5 ~all"
SPF 限制:一个域名只能有一条 SPF 记录(TXT 类型,v=spf1 开头)。多条会导致验证失败。
验证:
dig example.com TXT | grep spf
Step 3:配置 DKIM
DKIM 需要邮件服务提供商生成密钥对,你把公钥放到 DNS 里。
Google Workspace 配置步骤:
- 登录 Google Admin Console → Apps → Google Workspace → Gmail → Authenticate email
- 点击 Generate new record,选择 2048 位密钥
- Google 给你一个 TXT 记录:
类型: TXT
名称: google._domainkey.example.com
值: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUA..."(很长的公钥字符串)
TTL: 3600
- 在 DNS 中添加这条记录
- 回到 Google Admin → 点击 Start authentication
注意:名称是 google._domainkey(含选择器前缀),不是 _domainkey。
验证:
dig google._domainkey.example.com TXT
Step 4:配置 DMARC
推荐分三阶段部署:
阶段 1:监控模式(p=none)
类型: TXT
名称: _dmarc.example.com
值: "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
TTL: 3600
保持 2–4 周,观察 DMARC 报告,确认所有合法发件来源都通过了 SPF 和 DKIM 验证。
阶段 2:隔离模式(p=quarantine)
"v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com"
先对 25% 的邮件应用策略,观察一周,逐步提高到 100%。
阶段 3:严格拒绝(p=reject)
"v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc@example.com"
ruf 是单封失败邮件的报告地址(forensic reports)。
验证:
dig _dmarc.example.com TXT
完整配置示例(Google Workspace)
# MX 记录
@ MX aspmx.l.google.com 优先级=1
@ MX alt1.aspmx.l.google.com 优先级=5
@ MX alt2.aspmx.l.google.com 优先级=5
@ MX alt3.aspmx.l.google.com 优先级=10
@ MX alt4.aspmx.l.google.com 优先级=10
# SPF
@ TXT "v=spf1 include:_spf.google.com ~all"
# DKIM
google._domainkey TXT "v=DKIM1; k=rsa; p=..."
# DMARC
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
常见配置错误
| 错误 | 后果 | 修复 |
|---|---|---|
| 多条 SPF 记录 | 所有 SPF 验证失败 | 合并成一条 |
| SPF 超过 10 个 DNS 查询 | 解析超限,验证失败 | 减少 include 数量 |
| DKIM 未在邮件服务后台启用 | DNS 记录存在但签名无效 | 回服务商后台激活 |
| DMARC 记录名称写错 | 无效(应为 _dmarc.example.com) | 检查 TXT 记录名称 |
下一节:邮件投递率诊断——配置完了还是进垃圾箱?系统化排查邮件投递问题。