SPF、DKIM 和 DMARC 是发布在域名 DNS 中的三条邮件认证记录。收件服务器据此判断一封自称来自你域名的邮件,是否由你授权的服务发出,以及认证失败时该怎么处理。如果没有配置,任何人都可以把公司的邮箱地址填进“发件人”一栏发信。
为什么邮件伪造会影响业务
电子邮件本身没有验证发件人身份的机制。诈骗者可以用 accounts@yourcompany.com 发出假发票,或者“请更新我们的银行账户”这类通知,收件人看到地址无误,很容易信以为真。伪造邮件还会拉低域名信誉,让公司真实的报价单和预约确认更难进入收件箱。也可以参考我们关于品牌钓鱼与客户信任的文章。
三条记录分别做什么
SPF:哪些服务器可以代你发信
SPF(Sender Policy Framework)是一条 TXT 记录,列出允许以你的域名发信的服务器和服务,比如 Microsoft 365 或 Google Workspace 邮箱,以及邮件营销平台。收件服务器会把实际投递邮件的服务器与这份名单进行比对。SPF 检查的是投递过程中使用的技术性“信封”发件地址,它不一定等于收件人看到的发件人地址;邮件被转发时,SPF 也经常失败。
DKIM:每封邮件上的数字签名
DKIM(DomainKeys Identified Mail)会给每封外发邮件加上数字签名。发信服务用私钥签名,你在 DNS 中发布对应的公钥。收件方用这个公钥验证签名,并确认邮件中被签名的部分在传输途中没有被篡改。每个代你发信的服务,例如邮箱服务商、CRM 或预约系统,通常都需要单独为你的域名配置 DKIM 密钥。
DMARC:策略与报告
DMARC(Domain-based Message Authentication, Reporting and Conformance)是配置在 _dmarc.你的域名 下的 TXT 记录,它把 SPF 和 DKIM 的结果与收件人看到的发件人地址关联起来。只要 SPF 或 DKIM 有一项通过,并且通过认证的域名与发件人一栏的域名一致(即“对齐”),邮件就通过 DMARC。这条记录还告诉收件方如何处理认证失败的邮件,以及报告发到哪里。
DMARC 策略:none、quarantine 和 reject
- p=none:只做监控。收件方照常处理失败邮件,但会发送报告。
- p=quarantine:要求收件方把失败邮件当作可疑邮件,通常放进垃圾邮件箱。
- p=reject:要求收件方直接拒收失败邮件。
在记录中加入 rua 地址,就可以请求收件方回传汇总报告。这类报告是供机器读取的文件,支持的收件方一般每天发送一次,列出哪些服务器在用你的域名发信、是否通过认证。原始报告很难直接阅读,可以借助报告工具汇总。
大型邮箱服务商为什么要求配置
根据 Google 的电子邮件发件人指南,所有向个人 Gmail 账号发信的发件人都必须配置 SPF 或 DKIM;每天向 Gmail 账号发送超过 5,000 封邮件的发件人,则必须配置 SPF、DKIM 和 DMARC,并使发件人域名对齐,DMARC 策略设为 none 也可以接受。Yahoo 的发件人要求同样规定,所有发件人至少要配置 SPF 或 DKIM,批量发件人则要两者都配置,并发布至少为 p=none 的 DMARC 策略。不符合要求的邮件可能被标记为垃圾邮件或被拒收。相关规则可能调整,请以各服务商的最新页面为准。
分阶段部署
- 列出所有发信来源:邮箱服务商、网站表单、邮件营销工具、CRM、预约或电商平台、开票软件,以及会发送通知的系统。
- 为每个来源配置 SPF 和 DKIM。大多数服务会在帮助文档中给出需要添加的记录。
- 先以 p=none 发布 DMARC,并设置报告地址。用几周时间查看报告,找出仍未通过认证的正常发信来源。
- 逐步改为 quarantine,再改为 reject。等报告显示正常邮件都能通过,再收紧策略。
- 持续监控。以后新增任何会发邮件的工具,都应在上线前先加入 SPF 和 DKIM。
常见错误
- 配置了两条 SPF 记录。一个域名只能有一条 SPF 记录。为新服务另加一条,而不是合并进原有记录,会导致 SPF 认证失败。
- 漏掉第三方发信服务。邮件营销平台、CRM 或预约系统以你的域名发信,却没有加入 SPF 和 DKIM,一旦 DMARC 开始执行,这些邮件就会失败。
- 超出 SPF 查询次数上限。SPF 标准规定,检查一条记录时最多只能进行 10 次 DNS 查询,每个 include 至少占用一次。include 过多会超出上限,导致 SPF 失败。
- 一上来就设为 p=reject。没有经过监控就直接拒收,可能把自己的发票或重置密码邮件也拦掉。
- 把 DMARC 当成万能防护。它挡不住相似域名、误导性的显示名称,也挡不住密码被盗后从真实邮箱发出的邮件。多重身份验证和员工的安全意识仍然必不可少。
常见问题
这些记录要在哪里添加?
在托管你域名 DNS 的地方添加,可能是域名注册商、CDN 服务商或 IT 服务商。我们的 DNS 文章介绍了记录和 DNS 托管的工作方式。
我们是小公司,也需要 DMARC 吗?
批量发件人的规定主要针对发信量大的机构,但任何域名都可能被伪造。发布一条监控策略并不复杂,还能让你看到有哪些来源在以你的域名发信。
p=none 应该保持多久?
没有固定期限。当报告显示所有正常发信服务都已通过,而且你清楚剩下的失败邮件来自哪里,就可以进入下一步。
如需协助检查邮件认证配置及其他安全措施,可以了解我们的网络安全及合规服务。
