Marketing Entrepreneurship Email

如何为企业邮箱设置SPF、DKIM和DMARC

Alejandro Rioja
Alejandro Rioja
1 分钟阅读
TL;DR

发布一条SPF记录,列出所有以你的域名发信的服务;在邮件服务商处开启DKIM签名并发布它提供的密钥;再添加一条p=none并带报告地址的DMARC记录。读两到四周的报告,补上遗漏的发件方,然后把DMARC先调到quarantine,再调到reject。自2024年起,Gmail和Yahoo要求批量发件人三者齐备,微软的个人邮箱在2025年也跟进了。

免费新闻通讯

每周三。28,400+ 读者。纯干货。

如果你的报价单、发票或开发信总是进垃圾箱,先查DNS,再去改邮件标题。邮件服务商是否信任一封邮件,主要看你的域名能否证明这封邮件确实是它发的。这个证明由三条记录完成,而不少企业域名至少缺其中一条。

自2024年2月起,Gmail和Yahoo要求每天向其用户发送超过5000封邮件的发件人必须配置SPF、DKIM和DMARC,并要求垃圾邮件投诉率低于0.3%。微软旗下的Outlook.com、Hotmail和Live邮箱在2025年5月对大批量发件人加入了类似规则。你每天发的可能远不到5000封。但这些检查在实际中仍然适用于你,因为没有认证的小型发件人最先被过滤。

整个过程大约一小时。你不需要写代码,只需要能访问域名DNS所在的位置,以及邮件服务商的管理后台。

Table of contents

Open Table of contents

每条记录的作用

  1. SPF 是发布在DNS中的一份清单,列出允许以你的域名发信的服务。收件服务器会拿发件服务器与这份清单比对。
  2. DKIM 是邮件服务商附在每封邮件上的签名。对应的公钥放在你的DNS里,收件方据此确认邮件没有被篡改,且确实经过你的服务商发出。
  3. DMARC 告诉收件方:当你的域名SPF和DKIM验证失败时该怎么处理,以及把报告发到哪里。它还要求通过认证的域名必须与可见的发件人地址一致。

没有DMARC,SPF和DKIM只是建议。有了它,你能收到报告,看到谁在以你的名义发信,包括你忘掉的那个发件方。

第1步:盘点所有以你的域名发信的服务

这一步最容易被跳过,也是人们日后搞坏自己邮件的原因。把所有从你域名发信的东西写下来:

  • 你的邮箱(Microsoft 365、Google Workspace,或GoDaddy开通的邮箱)
  • 你的邮件营销平台
  • 你的CRM和开票工具
  • 网站表单和WordPress的系统邮件
  • 你的客服系统和各类预约工具

如果你通过GoDaddy使用Microsoft 365邮箱,我写的GoDaddy邮箱现在如何登录解释了为什么管理入口在微软的门户里。你要在那里开启DKIM。

第2步:检查现状

打开MXToolbox、Google Admin Toolbox的Check MX,或dmarcian的DMARC检查器等免费工具,输入你的域名。记下三件事:

  • 是否恰好只有一条以 v=spf1 开头的TXT记录?有两条是错误,不是备份。
  • 你的服务商是否显示DKIM正在签名?
  • _dmarc.你的域名.com 上是否有TXT记录?

更好的办法:从企业邮箱给一个Gmail账号发一封测试邮件,打开后选择“显示原始邮件”,查看顶部的SPF、DKIM和DMARC三行。每一行都应显示PASS。

第3步:发布一条SPF记录

在域名根部添加一条TXT记录。用 include: 列出每个发件方,最后以一条策略结尾。

常见的include:

  • Microsoft 365:include:spf.protection.outlook.com
  • Google Workspace:include:_spf.google.com
  • 邮件营销平台和CRM各自在帮助文档里公布自己的include值。请从那里复制,而不是从博客文章里复制,包括这一篇。

典型结果形如 v=spf1 include:spf.protection.outlook.com include:你的esp的值 ~all。

大多数SPF故障来自两条规则。第一,每个域名只能有一条记录:把新发件方合并到现有那一行,而不是再加第二条。第二,SPF总共只允许10次DNS查询,每个 include: 都算,包括它内部嵌套的。超过十次,收件方就把SPF当作永久错误。如果你已接近上限,先删掉不再使用的服务,再添加新的。

在还没摸清所有发件方时使用 ~all(软失败),等DMARC报告干净之后再考虑 -all。

第4步:为每个发件方开启DKIM

DKIM在每个发信服务内部配置,然后发布到DNS。

  • Microsoft 365: 在Microsoft Defender门户的邮件认证下打开DKIM设置,选择你的域名并启用签名。它会先给你两条CNAME记录(selector1._domainkey 和 selector2._domainkey)让你加到DNS。记录生效前启用会失败,生效可能要几个小时。
  • Google Workspace: 在管理控制台的Gmail认证中为你的域名生成密钥,发布它显示的TXT记录,然后点击“开始验证”。
  • 其他所有服务: 邮件营销平台、CRM和开票工具都有“域名认证”或“发信域名”页面,会给出要粘贴到DNS的记录。

对你清单中的每个发件方都这样做,而不只是邮箱。如果营销平台用它自己的域名而不是你的域名签名,DKIM能通过,但DMARC对齐仍会失败。

第5步:添加p=none的DMARC并阅读报告

创建一条名为 _dmarc 的TXT记录,值如下:

v=DMARC1; p=none; rua=mailto:dmarc-reports@你的域名.com

p=none 不会改变投递结果,它只是启动报告。原始DMARC报告是没人会读的XML文件,所以把 rua 指向一个免费的报告服务。一些DMARC监控厂商提供免费版,能把XML转成带有通过和失败次数的发信来源列表。

保持 p=none 两到四周。找出验证失败的合法发件方,比如老的开票工具或被遗忘的表单插件,把它加进SPF或开启它的DKIM来逐个修复。

第6步:转入强制执行

当你所有真实的发件方都通过后:

  1. 改为 p=quarantine; pct=25,让四分之一验证失败的邮件进垃圾箱。观察一周。
  2. 把 pct 提高到100。
  3. 改为 p=reject。

做到reject,别人就无法再冒用你的域名向你的客户发钓鱼邮件,这既保护你的名誉,也保护你的送达率。

让Claude或ChatGPT来做

把下面这段连同你自己的信息粘贴进任意一个,就不用逐个翻服务商的帮助页面了。

我负责域名 [你的域名.com] 的邮件。我的邮箱在 [Microsoft 365 / Google Workspace]。我还从 [列出你的营销平台、CRM、开票工具、网站表单] 发信。请给我:(1) 合并成一行后应发布的确切SPF TXT记录,(2) 在每个服务的管理界面中设置DKIM的步骤,(3) 带rua报告的初始DMARC记录,(4) 分四步达到p=reject的计划。告诉我哪些值必须从各厂商自己的文档里复制,而不是相信你,并计算SPF记录中的DNS查询次数。

发布它给你的内容之前,请对照各厂商当前的帮助页面核对 include: 的值。模型会编造看起来合理的include主机,而错误的值会悄无声息地失效。

验证并持续维护

DNS生效后,从每个发件方重复Gmail“显示原始邮件”的测试,而不只是从你的邮箱。分别从CRM、开票工具和网站表单发信。每封邮件的SPF、DKIM和DMARC都应显示PASS。

然后在日历上设一个重复提醒,每季度查看一次DMARC报告。每当你启用一个会以你的域名给客户发邮件的新工具,当天就完成认证。如果你在建立邮件列表或发送通讯,如何建立邮件列表讲了发送端,适合小企业的最佳邮件营销服务列出了在设置时会引导你完成域名认证的平台。

广告
继续阅读

相关文章

继续阅读

将AI实战手册发送到您的邮箱

每周三。28,400+ 读者。纯干货。

↵ ↵ 查看全部结果 esc esc 关闭