什么是邮件认证?为何重要?
企业在向客户发送邮件或发送新闻通讯时,最常见的问题是邮件落入垃圾邮件文件夹或被退回。根本原因往往是未完整配置邮件认证。
邮件认证是一套DNS标准,让接收邮件服务器能够验证邮件确实来自您的域名,而非伪造。主要包含三大标准:
- SPF(发件人策略框架)——指定哪些邮件服务器可代表域名发送邮件
- DKIM(域名密钥识别邮件)——对邮件进行数字签名,验证内容完整性
- DMARC(基于域的邮件认证、报告与一致性)——设置策略并收集报告
💡 关键点:完整配置三项标准将显著提升邮件送达率,并阻止恶意行为者利用您的域名发送网络钓鱼邮件。
第一步:配置SPF记录
SPF记录是DNS TXT记录,列出哪些邮件服务器IP地址有权以您的域名发送邮件。
SPF记录格式
v=spf1 [机制] [all]
| 机制 | 含义 | 示例 |
|---|---|---|
ip4: | 允许特定IPv4 | ip4:203.0.113.10 |
include: | 包含其他域的SPF | include:_spf.google.com |
mx | 允许MX记录中的IP | mx |
~all | 软拒绝其他(推荐) | ~all |
-all | 严格拒绝其他 | -all |
AsiaGB主机SPF示例
v=spf1 mx include:spf.asiagb.com ~all
⚠️ 注意:每个域名只能有一条SPF TXT记录。多条SPF记录会导致全部失效。请将所有内容合并到一条记录中。
第二步:配置DKIM
DKIM使用公私钥加密技术对每封外发邮件进行数字签名,使收件人能够验证邮件内容在传输过程中未被篡改。
DKIM DNS记录格式
添加名为mail._domainkey.yourdomain.com的TXT记录(选择器通常为mail):
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
💡 提示:在DirectAdmin中,前往电子邮件→DKIM密钥生成并查看您的DKIM公钥。添加到DNS前需去除PEM头尾行,合并为单行。
第三步:配置DMARC
DMARC告知接收服务器如何处理未通过SPF或DKIM检查的邮件,并向指定地址发送报告。
DMARC记录格式
添加名为_dmarc.yourdomain.com的TXT记录:
v=DMARC1; p=none; rua=mailto:[email protected]; fo=1; pct=100
| 参数 | 含义 | 推荐值 |
|---|---|---|
p= | 失败邮件处理策略 | none→quarantine→reject |
rua= | 聚合报告地址 | mailto:[email protected] |
fo= | 失败报告选项 | 1(任何失败都报告) |
pct= | 策略应用百分比 | 100 |
建议的DMARC部署策略
三阶段DMARC部署
第1个月:p=none——收集数据,不阻止任何邮件
第2-3个月:p=quarantine; pct=25——对25%流量测试
第4个月+:p=reject; pct=100——完全阻止未认证邮件
完整DNS记录示例
| 记录名称 | 类型 | 值 |
|---|---|---|
@ | TXT | v=spf1 mx include:spf.asiagb.com ~all |
mail._domainkey | TXT | v=DKIM1; k=rsa; p=[公钥] |
_dmarc | TXT | v=DMARC1; p=none; rua=mailto:[email protected] |
测试与验证
免费测试工具
- MXToolbox——一站式测试SPF、DKIM、DMARC
- mail-tester.com——发送测试邮件获取投递率评分
- Google Postmaster Tools——监控Gmail的投递情况
- DMARC Analyzer——分析DMARC聚合报告
命令行测试
# 检查SPF
dig TXT yourdomain.com | grep "v=spf1"
# 检查DKIM
dig TXT mail._domainkey.yourdomain.com
# 检查DMARC
dig TXT _dmarc.yourdomain.com
常见问题排查
配置后邮件仍进垃圾箱
- 验证SPF lookup次数不超过10次(DNS查询限制)
- 确认DNS中的DKIM公钥与服务器私钥匹配
- 通过MXToolbox黑名单检查核实服务器IP是否被列入黑名单
SPF和DKIM通过但DMARC仍然失败
DMARC需要对齐——From头中的域名必须与SPF或DKIM使用的域名对齐。邮件转发可能破坏对齐。
最佳实践
- 使用2048位或更大的DKIM密钥(1024位已被认为不安全)
- 每6-12个月轮换一次DKIM密钥
- 先将DMARC设置为
p=none监控2-4周再执行 - 定期检查DMARC聚合报告,识别未授权发件人
- 切勿在SPF中使用
+all(允许任何人以您的域名发送邮件) - 不用于发送邮件的子域名设置
v=spf1 -all和p=reject
常见问题解答
- 什么是SPF?
- SPF(发件人策略框架)是一种DNS TXT记录,用于指定哪些邮件服务器可以代表您的域名发送电子邮件,从而防止邮件伪造。
- DKIM与SPF有何不同?
- DKIM使用公私钥加密技术对电子邮件进行数字签名,使收件人可以验证邮件在传输过程中是否被篡改。而SPF只检查发送服务器是否经过授权。
- 什么是DMARC,为什么需要它?
- DMARC规定了对未通过SPF或DKIM检查的邮件的处理方式,并提供报告功能,让您了解谁在使用您的域名发送邮件。
- DNS配置需要多长时间生效?
- DNS传播通常需要24-48小时,但往往更快。配置后可以立即使用MXToolbox或mail-tester.com进行测试。
- 配置错误会发生什么?
- SPF配置错误可能导致邮件被拒绝;DKIM配置错误可能导致邮件被标记为垃圾邮件。建议先将DMARC设置为p=none进行监控,再逐步加严策略。