SPF/DKIM/DMARC 邮件安全记录设置完整教程
MX + SPF + DKIM + DMARC 一条龙配置,让你的邮件不再进垃圾箱
为什么需要配置这些记录?
很多企业开通邮箱后只配了MX记录就以为万事大吉了。这是最常见的配置错误。只配MX可以收发邮件,但缺少SPF/DKIM/DMARC会导致:
- 邮件进垃圾箱——Gmail、Outlook等大型邮件服务商对缺少安全验证的邮件会降低信任度
- 被冒名发送——任何人都可以用你的域名发垃圾邮件,损害公司声誉
- 海外退信率高——海外邮件服务器对安全验证要求更严格
- 邮件被拒收——2024年起Google/Yahoo强制要求大批量发件人配置DMARC
完成以下四项配置后,你的邮件安全性将提升到企业级标准,送达率显著提高。
配置总览:四步配齐邮件安全体系
| 步骤 | 记录类型 | 作用 | 优先级 |
|---|---|---|---|
| 1 | MX记录 | 指定邮件服务器地址,邮件收发的基石 | 必须 |
| 2 | SPF记录(TXT) | 声明哪些服务器有权以你的域名发邮件,防冒用 | 必须 |
| 3 | DKIM记录(CNAME) | 邮件数字签名,确保内容未被篡改 | 强烈建议 |
| 4 | DMARC记录(TXT) | 定义验证失败的处理策略,获取安全报告 | 建议配置 |
第一步:配置MX记录(邮件交换记录)
MX(Mail Exchange)记录告诉互联网"发往你域名的邮件应该送到哪台服务器"。没有MX记录,你的域名根本无法接收邮件。
阿里云企业邮箱MX记录值
在域名注册商(如阿里云万网、腾讯云、GoDaddy等)的DNS管理后台,添加以下MX记录:
主机记录 记录类型 记录值 优先级(MX) TTL @ MX mx1.qiye.aliyun.com 5 600 @ MX mx2.qiye.aliyun.com 10 600 @ MX mx3.qiye.aliyun.com 15 600
重要提示:
- MX记录的主机记录通常填
@(代表主域名本身) - 优先级数字越小越优先,阿里云建议 mx1=5, mx2=10, mx3=15
- 如果使用子域名(如 mail.mycompany.com),需要额外配置
- 配置前建议将TTL调低至600秒,加快生效和调试
第二步:配置SPF记录(发件人策略框架)
SPF(Sender Policy Framework)是一种邮件验证协议。它通过DNS中的TXT记录声明"哪些邮件服务器有权限使用你的域名发邮件"。接收方服务器会检查这封邮件是否来自你授权的服务器——如果不是,就会被标记为可疑。
SPF记录配置值
在DNS管理后台添加一条TXT记录:
主机记录 记录类型 记录值 @ TXT v=spf1 include:spf.qiye.aliyun.com -all
SPF记录值解读
| 参数 | 含义 |
|---|---|
v=spf1 | 使用SPF协议版本1 |
include:spf.qiye.aliyun.com | 包含阿里云企业邮箱的SPF配置(授权阿里云服务器发送) |
-all | 严格模式:除上述声明外,其他所有服务器发送的邮件一律拒绝(推荐) |
扩展场景:如果你的公司还使用其他邮件发送服务(如SendGrid、Mailchimp等),需要在SPF中追加对应的include,例如:
v=spf1 include:spf.qiye.aliyun.com include:spf.sendgrid.net -all
注意:SPF记录中最多允许10次DNS查询(include也算一次查询),超出的include不会被检查。建议控制在3-5个include以内。
⚠️ SPF常见错误
- 使用 ~all 而不是 -all:~all 是软拒绝(标记但不拒绝),-all 是硬拒绝(直接拒收)。建议用 -all 获得更严格的安全保护
- 一个域名有多条SPF记录:一个域名只能有一条SPF记录。如果需要包含多个服务商,用一条记录多个include即可
- 忘了更新SPF:换邮箱服务商后,必须更新SPF记录,否则旧服务商的授权仍保留
第三步:配置DKIM记录(域名密钥识别邮件)
DKIM(DomainKeys Identified Mail)使用数字签名技术验证邮件。发送邮件时,阿里云邮件服务器会用私钥对邮件内容签名;接收方服务器通过DNS中的公钥(即DKIM记录)验证签名。如果签名验证通过,说明邮件确实来自你的域名且内容未被篡改。
SPF vs DKIM:两者配合才完整
- SPF验证"发送来源"——确认邮件是从被授权的服务器发出的
- DKIM验证"内容完整性"——确认邮件内容在传输过程中没有被篡改
两者配合使用,才能构建完整的邮件安全验证链。
阿里云企业邮箱DKIM配置步骤
DKIM的记录值由阿里云企业邮箱系统自动生成,每个域名不同。获取方式:
- 登录阿里云企业邮箱管理后台(admin.qiye.aliyun.com)
- 进入「安全管理」→「DKIM设置」
- 系统会生成一对DKIM记录(主机记录名 + 记录值)
- 将这两条CNAME记录添加到你的域名DNS中
DKIM记录格式示例(实际值以系统生成为准):
主机记录 记录类型 记录值 TTL aliyundkim._domainkey.yourdomain CNAME aliyundkim._domainkey.qiye.aliyun 600 aliyundkim2._domainkey.yourdomain CNAME aliyundkim2._domainkey.qiye.aliyun 600
注意:DKIM配置后需要在阿里云后台点击"验证",确认DNS记录已生效。生效后发出去的每一封邮件都会自动带上DKIM签名。
第四步:配置DMARC记录(基于域的消息认证报告与一致性)
DMARC(Domain-based Message Authentication, Reporting & Conformance)是在SPF和DKIM基础上的策略层。它做两件事:
- 定义策略——当SPF或DKIM验证失败时,收件服务器该怎么处理(放行、隔离到垃圾箱、还是直接拒收)
- 发送报告——让你知道谁在用你的域名发邮件(包括合法和非法使用)
DMARC记录配置
在DNS管理后台添加一条TXT记录:
主机记录 记录类型 记录值 _dmarc TXT v=DMARC1; p=none; rua=mailto:admin@yourdomain.com; ruf=mailto:admin@yourdomain.com; pct=100; sp=none; aspf=r; adkim=r;
DMARC参数详解
| 参数 | 含义 | 推荐值 |
|---|---|---|
v=DMARC1 | 协议版本 | DMARC1 |
p=none | 验证失败时的策略:none=不处理,quarantine=隔离到垃圾箱,reject=拒收 | none(初期)→ reject(稳定后) |
rua=mailto:... | 接收聚合报告(每日汇总)的邮箱地址 | 管理员邮箱 |
ruf=mailto:... | 接收取证报告(每封失败邮件的详情)的邮箱地址 | 管理员邮箱(可选) |
pct=100 | 应用策略的邮件百分比 | 100(全部应用) |
sp=none | 子域名的策略(独立于主域名) | none(初期) |
aspf=r | SPF对齐模式:r=宽松,s=严格 | r(推荐) |
adkim=r | DKIM对齐模式:r=宽松,s=严格 | r(推荐) |
💡 DMARC最佳实践
- 第一阶段(监控期):设置 p=none,观察1-2周,查看报告确认所有合法邮件都通过了SPF/DKIM验证
- 第二阶段(过渡期):设置 p=quarantine,将有问题的邮件隔离到垃圾箱,再观察1周
- 第三阶段(强制执行期):设置 p=reject,所有验证失败的邮件直接拒收,安全等级最高
- rua报告的邮箱建议用独立的管理邮箱,避免和其他邮件混在一起
如何验证配置是否生效?
配置完成后,不要凭感觉判断。用以下工具和方法来验证:
方法一:在线检测工具(推荐)
- MXToolbox(mxtoolbox.com)——检测MX、SPF、DKIM、DMARC记录是否配置正确
- DKIMValidator(dkimvalidator.com)——发送一封测试邮件,验证DKIM签名是否有效
- Mail Tester(mail-tester.com)——综合邮件质量评分(满分10分),检测送达率影响因素
方法二:命令行检测
在终端中执行以下命令查看DNS记录:
# 检测MX记录 nslookup -type=MX yourdomain.com # 检测SPF记录 nslookup -type=TXT yourdomain.com # 检测DMARC记录 nslookup -type=TXT _dmarc.yourdomain.com # 检测DKIM记录(记录名以实际为准) nslookup -type=CNAME aliyundkim._domainkey.yourdomain.com
方法三:发送测试邮件
向Gmail和Outlook邮箱各发一封测试邮件,查看邮件头中的 "Authentication-Results" 字段。正确的验证结果应显示:
Authentication-Results: mx.google.com;
spf=pass smtp.mailfrom=yourdomain.com;
dkim=pass header.i=@yourdomain.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yourdomain.com
三个都是 pass 状态,说明SPF、DKIM、DMARC全部配置正确。
配置失败常见原因与排查
问题:MX记录配了但收不到邮件
排查:1)确认域名DNS服务器是否已切换到你修改记录的服务商;2)使用 nslookup 检查MX记录是否正确返回;3)确认域名是否有CNAME记录与MX冲突(根域名不要有CNAME);4)等待DNS传播时间(最长48小时)。
问题:SPF验证一直失败
排查:1)检查是否有多个TXT记录都以 "v=spf1" 开头(只能有一条SPF);2)确认include中的域名拼写正确;3)SPF记录中的DNS查询次数是否超过10次限制;4)使用 mxtoolbox.com 的SPF检查工具定位具体问题。
问题:DKIM签名验证失败
排查:1)确认DKIM记录已在阿里云邮箱后台启用;2)确认CNAME记录值完全正确(注意域名中的下划线和点号);3)DNS记录生效需要时间,等待10-30分钟后再测试;4)在阿里云后台重新生成DKIM记录并重新添加。
问题:DMARC报告收不到
排查:1)确认 rua 邮箱地址格式正确(mailto: 前缀);2)rua 报告是每日汇总,不是实时报告,需要等到次日;3)如果刚配置DMARC,部分邮箱服务商可能需要24-48小时才开始发送报告;4)检查 rua 邮箱是否设置了垃圾邮件过滤。
阿里云企业邮箱DNS完整配置汇总
如果你需要一次性配完所有记录,下面是完整配置清单(以域名 yourdomain.com 为例):
# === MX 记录(邮件交换 - 必须) === 主机记录 类型 记录值 优先级 @ MX mx1.qiye.aliyun.com 5 @ MX mx2.qiye.aliyun.com 10 @ MX mx3.qiye.aliyun.com 15 # === SPF 记录(发件人验证 - 必须) === 主机记录 类型 记录值 @ TXT v=spf1 include:spf.qiye.aliyun.com -all # === DKIM 记录(邮件签名 - 强烈建议) === # 实际值请在阿里云邮箱管理后台获取! aliyundkim._domainkey CNAME aliyundkim._domainkey.qiye.aliyun aliyundkim2._domainkey CNAME aliyundkim2._domainkey.qiye.aliyun # === DMARC 记录(安全策略 - 建议配置) === 主机记录 类型 记录值 _dmarc TXT v=DMARC1; p=none; rua=mailto:admin@yourdomain.com; pct=100; aspf=r; adkim=r; # === CNAME 自动发现(方便客户端配置) === 主机记录 类型 记录值 autodiscover CNAME autodiscover.qiye.aliyun.com
📌 操作提示
- 配置前截图保存原始DNS记录,出问题可以快速恢复
- 建议先将TTL调至600秒,等确认配置正确后再调回默认值
- 修改后等待10-30分钟再用工具验证,不要急于测试
- 如果自己搞不定,联系专属顾问,他们可以远程协助配置
作者:张明
企业邮箱技术顾问 · 8年企业IT服务经验 · 专注阿里云企业邮箱部署与迁移 · 已协助500+企业完成邮箱系统搭建
DNS配置遇到困难?
专属顾问可以远程协助,帮你一次性配好所有安全记录
联系顾问获取协助 →无需自己摸索 · 15分钟搞定 · 同品质更优惠