当一封邮件到达 Gmail 或 Outlook 时,接收服务器会在决定是否投递之前运行三项检查。三项全部通过,才能让域名稳定落入收件箱,而不是进入垃圾邮件——甚至被直接拒绝。
SPF——谁被允许以您的域名发信
SPF 记录是域名上的一条 DNS TXT 记录,列出了被允许以您的名义发信的 IP 地址和邮件服务。接收服务器收到声称来自您的邮件时,会查询您的 SPF 记录并检查发信服务器是否在列表中。如果不在,邮件就会 SPF 失败。每个域名只能有一条 SPF 记录;多条记录是无效的。Rovela 的设置页面会显示需要添加的确切值。
DKIM——每封邮件上的密码学签名
DKIM 使用发信服务持有的私钥对每封发出的邮件进行签名,您则将对应的公钥以 TXT 记录的形式发布到 DNS。接收服务器获取公钥并验证签名。签名有效意味着邮件正文和邮件头自签名后未被篡改,且密钥持有者授权了此次发送。在域名设置中添加 Rovela 显示的 TXT 记录后,每封发出的邮件都会自动完成签名。
DMARC——验证失败时的处理策略
DMARC 是一条策略记录。它告诉接收服务器如何处理 SPF 或 DKIM 验证失败的邮件:不做任何处理(p=none,用于监控)、将其隔离到垃圾邮件,或直接拒绝。它还会指定一个地址接收失败报告,让您了解谁在尝试伪造您的域名。建议从 p=none 开始收集数据,确认所有合规发信来源都通过对齐检查后,再逐步升级到 p=quarantine 和 p=reject。
对齐——为什么三者需要指向同一个域名
DMARC 要求对齐:From 头中的域名必须与通过 SPF 的域名或 DKIM 签名中的域名相匹配。一封邮件可能在信封发件人上通过了 SPF,但如果信封域名与 From 域名不同,DMARC 仍然会失败。Rovela 使用您的域名而非自己的域名发信,因此 DKIM 和 SPF 都能与收件人看到的地址对齐。
有效的配置顺序
先添加 SPF,再添加 DKIM,然后以 p=none 启用 DMARC。通过 DMARC 发送给您的报告,确认合规邮件都通过了两项检查。一旦所有发信来源都对齐,将策略升级到 p=quarantine 保持一周,再升级到 p=reject。不经过监控直接跳到 p=reject,往往会导致代发邮件中断,排查起来非常麻烦。
常见问题
- 三条记录都需要配置吗,还是一条就够?
- 三条都需要。SPF 和 DKIM 对发送行为进行认证;DMARC 告诉接收方在认证失败时如何处理,并让您了解谁在使用您的域名发信。仅有 SPF 的域名仍然容易遭受 DMARC 失败的欺骗攻击。
- DKIM 密钥可以在不中断发信的情况下轮换吗?
- 可以。在控制台发起轮换后,Rovela 会用新的 selector 生成新密钥,并显示第二条 TXT 记录,与现有记录一同发布即可。只有在你验证域名、Rovela 确认新记录已生效后,新密钥才开始签名,因此不会出现用接收方查不到的密钥签名的情况。切换前已签名的邮件仍可用旧记录验证。
- 我可以为多个发信服务配置 SPF 吗?
- 可以,但每个域名只能有一条 SPF 记录。您需要使用 include: 机制将所有允许的发信方合并到一条 TXT 记录中。添加第二条独立的 SPF 记录是协议错误,会导致不可预期的失败。
- 如何知道我的记录是否配置正确?
- Rovela 仪表板会验证您的 DKIM 和 SPF 记录,解析正确后显示绿色勾选。您也可以向 Gmail 地址发送测试邮件,查看原始邮件源码——其中会显示每项检查的认证结果。