网店 SPF、DKIM、DMARC 配置指南:满足 Gmail 和 Yahoo 发件要求
SPF、DKIM 和 DMARC 各起什么作用,Gmail、Yahoo 和 Outlook.com 对发件人有哪些要求,如何在 Shopify 和 WooCommerce 上配置,以及如何逐步升级到 p=reject。
FixReports 编辑团队阅读约需 4 分钟
要满足 Gmail 和 Yahoo 的发件人要求,每家网店的发信域名都必须配置 SPF 或 DKIM;批量发件人则两者都要配置,还需要一条至少为 p=none 的 DMARC 记录,并让收件人看到的发件人(From)域名与 SPF 或 DKIM 的域名对齐。批量发件人还必须在营销邮件中提供一键退订,并把被举报的垃圾邮件率控制在 0.3% 以下。在 Shopify 上,这意味着在后台验证发件域名并添加一条 DMARC 记录;在 WooCommerce 上,这意味着通过一家已完成身份验证的邮件服务商发信。等 DMARC 报告显示您所有正当的邮件都能通过验证后,就可以把策略逐步收紧到 p=reject。
要点
- 自 2024 年 2 月 1 日起,Gmail 要求所有发件人配置 SPF 或 DKIM,批量发件人则须同时配置 SPF、DKIM 和 DMARC(Google (在新标签页中打开))。
- 只要在 24 小时内向个人 Gmail 账号发送接近 5000 封邮件,Gmail 就会把您视为批量发件人,而且这一身份不会过期(Gmail 常见问题 (在新标签页中打开))。
- 从 2025 年 11 月开始,Gmail 加大了对不合规流量的处置力度,包括临时拒收和永久拒收(Gmail 常见问题 (在新标签页中打开))。
- 自 2025 年 5 月 5 日起,Outlook.com 要求每天发送超过 5000 封邮件的域名配置 SPF、DKIM 和 DMARC(Microsoft (在新标签页中打开))。
- 每次 SPF 检查最多只能包含 10 个需要 DNS 查询的项,超出就会返回
permerror(RFC 7208 (在新标签页中打开))。 - DMARC 于 2026 年 5 月更新:RFC 9989 (在新标签页中打开) 取代了 RFC 7489,并用
t标签替换了pct标签。
SPF、DKIM 和 DMARC 到底有什么作用?
SPF 列出哪些服务器可以代表您的域名发信,DKIM 为每封邮件签名,DMARC 则把两者与客户看到的发件人地址关联起来。
| 记录 | 证明什么 | 存放位置 | 标准 |
|---|---|---|---|
| SPF | 发信服务器已获授权,可以使用信封发件人(MAIL FROM)中的域名 | 域名上的 TXT 记录 | RFC 7208 (在新标签页中打开) |
| DKIM | 邮件由该域名签名,且在传输过程中未被篡改 | 位于 selector._domainkey.example.com 的 TXT 记录 | RFC 6376 (在新标签页中打开) |
| DMARC | SPF 或 DKIM 针对一个与可见发件人域名对齐的域名通过了验证;同时告诉收件服务器验证失败时如何处理、报告发往何处 | 位于 _dmarc.example.com 的 TXT 记录 | RFC 9989 (在新标签页中打开) |
对齐这一点很容易被忽视。您的邮件平台可能用它自己的退信域名通过了 SPF,而发件人地址显示的却是您店铺的域名。这样的邮件虽然通过了 SPF,DMARC 却会失败,除非 DKIM 使用您的域名签名。
Gmail 和 Yahoo 对发件人有哪些要求?
两者都要求所有发件人进行身份验证,并对批量发件人提出了更严格的规则。
对所有发件人,Gmail 要求配置 SPF 或 DKIM、有效的正向和反向 DNS、TLS、符合 RFC 5322 的邮件格式,并且 Postmaster Tools 中的垃圾邮件率低于 0.3%(Google (在新标签页中打开))。Yahoo 要求至少配置 SPF 或 DKIM,且垃圾邮件率低于 0.3%(Yahoo Sender Hub (在新标签页中打开))。对批量发件人的要求如下:
| 要求 | Gmail | Yahoo |
|---|---|---|
| SPF 和 DKIM | 两者都要 | 两者都要 |
| DMARC | 必须配置;策略可以是 none | 有效策略,至少为 p=none,且 DMARC 必须通过 |
| 对齐 | 发件人域名与 SPF 或 DKIM 域名对齐 | 相同;接受宽松对齐 |
| 一键退订 | 营销邮件和订阅邮件须按 RFC 8058 支持一键退订,并提供可见的退订链接 | 营销邮件和订阅邮件须提供支持一键退订的 List-Unsubscribe 标头 |
| 处理退订请求 | 48 小时内(建议) | 2 天内 |
| 垃圾邮件率 | 低于 0.3%;Google 建议低于 0.10% | 低于 0.3% |
有几个细节对网店尤其重要:
- Gmail 按域名计数。 来自同一主域名的邮件都计入 5000 封的门槛,因此订单邮件、营销邮件和客服回复会累加在一起。
- 只计算个人 Gmail 账号。 这些准则不适用于发往 Google Workspace 账号的邮件。
- 事务性邮件无需提供一键退订。 但订单确认邮件仍然需要身份验证。
一键退订使用 RFC 8058 (在新标签页中打开) 定义的两个标头,该规范还要求有一个覆盖这两个标头的有效 DKIM 签名:
List-Unsubscribe: <https://example.com/unsubscribe/opaquepart>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
要确认您的营销平台是否添加了这两个标头,可以打开您自己发出的某封营销邮件,查看它的原始源码。
2024 年 2 月之后有哪些变化?
处置力度在逐步收紧,其他邮箱服务商也陆续采用了类似的规则。
| 日期 | 变化 | 来源 |
|---|---|---|
| 2024 年 2 月 | Gmail 和 Yahoo 的要求生效(Yahoo 分阶段推行执行) | Google (在新标签页中打开),Yahoo (在新标签页中打开) |
| 2024 年 6 月 | Gmail:垃圾邮件率高于 0.3% 的批量发件人不再有资格获得缓解措施 | Gmail 常见问题 (在新标签页中打开) |
| 2024 年 6 月 1 日 | Gmail 对已有退订链接的发件人规定的一键退订截止日期 | Gmail 常见问题 (在新标签页中打开) |
| 2025 年 5 月 5 日 | Outlook.com 对每天发送超过 5000 封邮件的域名提出要求;Microsoft 在 4 月 29 日的更新中表示,未通过验证的邮件将以 550 5.7.515 被拒收 | Microsoft (在新标签页中打开) |
| 2025 年 11 月 | Gmail 加大处置力度,包括临时拒收和永久拒收 | Gmail 常见问题 (在新标签页中打开) |
| 2026 年 5 月 | RFC 9989 取代 RFC 7489,成为 DMARC 规范 | IETF (在新标签页中打开) |
Outlook.com 的规则适用于其个人消费者邮箱(outlook.com、hotmail.com 和 live.com),要求 SPF 和 DKIM 都通过,并且 DMARC 至少为 p=none、与 SPF 或 DKIM 对齐。
如何在 Shopify 上配置 SPF、DKIM 和 DMARC?
在 Shopify 后台验证发件域名,然后在 DNS 服务商处添加一条 DMARC 记录。
Shopify 的邮件设置指南 (在新标签页中打开)指出,自 2024 年 2 月 1 日起,Gmail 和 Yahoo 要求使用品牌邮箱地址发信时必须具备经过验证的域名和 DMARC 记录。如果没有配置身份验证记录,Shopify 会把您的发件地址改写为 store+123@shopifyemail.com 格式。步骤如下:
- 在 Shopify 后台进入 设置 > 通知(Settings > Notifications)。
- 在 发件人电子邮件(Sender email)部分,点击 验证您的域名(authenticate your domain)。
- 在 DNS 服务商处添加页面上显示的每一条 CNAME 记录,记录数量可能不同。Shopify 表示,这些记录会为您的发件地址处理 SPF 和 DKIM,您无需添加 IP 地址。
- DNS 更改最多可能需要 48 小时才能生效。
- 添加一条名称为
_dmarc、值为v=DMARC1; p=none;的 TXT 记录,这是 Shopify 使用的默认值。
如果您的域名是在 Shopify 购买的,或已转入 Shopify,Shopify 会替您管理这些记录。Shopify 还提醒,一个域名只能有一条 DMARC 记录,并且应删除严格对齐设置(adkim=s 或 aspf=s),或将其改为 r。
Shopify 的身份验证只覆盖由 Shopify 发出的邮件。如果您用其他平台发送营销活动邮件、使用客服工单系统,或用 Google Workspace 处理员工邮件,那么每个系统都需要单独配置 DKIM;如果它使用您的域名作为退信域名,还需要单独添加 SPF 条目。
如何为 WooCommerce 配置邮件身份验证?
按照 WooCommerce 官方文档的建议,通过一家使用您的域名签名的专业邮件服务商发送 WooCommerce 邮件。
WooCommerce 使用 WordPress 的 wp_mail() 函数发信,其邮件常见问题 (在新标签页中打开)建议使用专门的 SMTP 服务商,因为它比您自己服务器的邮件函数更可靠。典型的配置如下:
- 选择一家事务性邮件服务商,并在该服务商处验证您的域名。服务商会提供需要发布的 DKIM 记录和 SPF include。
- 通过 SMTP 或 API 插件把 WordPress 连接到该服务商。
- 在 WooCommerce > 设置 > 电子邮件(WooCommerce > Settings > Emails)中,把 发件人地址(From address)设为您自己域名下的地址。WooCommerce 提醒,使用公共邮箱地址(例如 Gmail 或 Yahoo 邮箱)发信,邮件很可能进入垃圾箱或被拦截。
- 在
_dmarc.yourdomain发布一条 DMARC 记录。 - 打开 WooCommerce > 状态 > 日志(WooCommerce > Status > Logs),按
transactional-emails来源筛选,查看哪些邮件已发出、哪些发送失败。
如果您的网站主机也以该域名发信,请为它配置身份验证或将其关闭。任何以您的域名发信、却没有对齐的 SPF 或 DKIM 的系统,都无法通过 DMARC。
什么是 SPF 10 次查询限制?如何不超限?
一次 SPF 检查最多只能使用 10 个需要 DNS 查询的项;再多一个,结果就是 permerror,SPF 也就无法通过。
RFC 7208 第 4.6.4 节 (在新标签页中打开)列出了计入限制的项:include、a、mx、ptr 和 exists 机制,以及 redirect 修饰符。ip4、ip6 和 all 机制不计入。嵌套在 include 里的 include 同样计入,因为这一限制适用于整个评估过程。该 RFC 还建议把“空查询”(没有返回结果的查询)限制在两次以内,并指出不应发布 ptr 机制。
控制在 10 次以内的方法:
- 删除已不再使用的服务的 include。
- 对您自己运行、地址固定的服务器,使用
ip4或ip6。 - 把营销邮件迁移到
news.example.com这样的子域名,它有自己的 SPF 记录,查询次数也单独计算。 - 绝不要发布两条 SPF 记录。RFC 7208 禁止存在多条记录,评估时会返回
permerror。
example.com. TXT "v=spf1 include:_spf.google.com include:spf.example-esp.com ~all"
news.example.com. TXT "v=spf1 include:spf.example-marketing.com ~all"
spf.example-esp.com 和 spf.example-marketing.com 只是示例,请替换为您的服务商要求使用的值。
如何把 DMARC 从 p=none 升级到 p=reject?
先从带报告的 p=none 开始,修复报告中发现的每一个正当发信来源,然后再收紧策略。
| 阶段 | 记录 | 目标 |
|---|---|---|
| 1. 监控 | v=DMARC1; p=none; rua=mailto:dmarc@example.com | 收集汇总报告,了解哪些系统在以您的域名发信 |
| 2. 修复 | 不做更改 | 让每个正当的发信来源都通过对齐的 SPF 或 DKIM |
| 3. 隔离 | v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com | 未通过验证的邮件进入垃圾箱 |
| 4. 拒收 | v=DMARC1; p=reject; rua=mailto:dmarc@example.com | 未通过验证的邮件被拒收 |
只有当报告显示您的网店平台、营销工具、客服系统和员工邮件全部通过时,才进入下一阶段。汇总报告由 RFC 9990 (在新标签页中打开) 定义。如果 rua 地址位于其他域名(例如某个报告服务),该域名必须发布一条授权接收这些报告的记录。
一些较早的指南建议用 pct=25 或 pct=50 分步推行。RFC 9989 删除了 pct(它的注册表条目现已标为“historic”,即历史状态),因为 0 和 100 以外的取值在实际中执行得并不一致。取而代之的是 t=y,它请求收件服务器执行低一级的策略,例如以隔离代替拒收。如果您想设置一个试行阶段,请使用 t=y,而不是部分百分比。
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; t=y; rua=mailto:dmarc@example.com"
_dmarc.example.com. TXT "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@example.com"
强制执行的策略还为 BIMI 创造了条件,BIMI 可以在支持它的收件箱中显示您的品牌徽标。Gmail 要求 DMARC 为 p=quarantine 或 p=reject,并且需要 Verified Mark Certificate 或 Common Mark Certificate(Google (在新标签页中打开))。对于发往您域名的入站邮件,MTA-STS(RFC 8461 (在新标签页中打开))可以让您告诉发信服务器:如果您的邮件服务器没有提供使用受信任证书的 TLS,就拒绝投递。
如何检查您店铺的记录?
用 dig 查询这三类记录,或者使用能替您读取记录的检测工具。
dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short TXT selector._domainkey.example.com
DKIM 选择器(selector)由您的服务商提供,您也可以在自己发出的邮件中,从 DKIM-Signature 标头的 s= 值里找到它。邮件送达率报告会读取您的公开 DNS,统计 SPF 查询次数,尝试常见的 DKIM 选择器,并检查 DMARC 策略、rua、pct、BIMI 和 MTA-STS。正确的记录有帮助,但任何记录组合都不能保证邮件进入收件箱,因为邮箱服务商还会考量垃圾邮件投诉和发信行为。
常见问题
如果我的网店每天发送的邮件少于 5000 封,还需要 DMARC 吗?
Gmail 只要求批量发件人配置 DMARC,但 Shopify 指出,Gmail 和 Yahoo 要求使用品牌邮箱地址发信时必须具备经过验证的域名和 DMARC 记录。p=none 记录风险很低,还能为您提供报告,因此大多数网店都应该发布一条。
我的域名可以有两条 SPF 记录吗?
不可以。RFC 7208 规定一个域名不得有多条 SPF 记录,如果有,SPF 评估会返回 permerror。请把所有发信方合并到一条记录中。
p=reject 会拦截我的 Shopify 订单邮件吗?
只要 Shopify 的 CNAME 记录已配置到位,并且 DMARC 报告显示 Shopify 发出的邮件通过了对齐的 DKIM,就不会。在把策略升级到 p=none 以上之前先查看报告,并按照 Shopify 的建议保持宽松对齐。
DMARC 的 pct 标签还有效吗?
2026 年 5 月发布的 RFC 9989 删除了 pct,并引入 t=y 作为测试模式。Google 的 BIMI 指南仍然要求 pct=100,而不写该标签时默认值就是 100,因此新建记录时不写 pct 是最简单的选择。
SPF、DKIM 和 DMARC 都通过了,就能保证邮件进入收件箱吗?
不能。身份验证是必要条件,而不是保证。Gmail 和 Yahoo 还会考察垃圾邮件投诉率、退订处理情况和邮件格式。
参考资料
- Email sender guidelines (在新标签页中打开),Google,访问于 2026 年 10 月 22 日
- Email sender guidelines FAQ (在新标签页中打开),Google,访问于 2026 年 10 月 22 日
- Sender best practices (在新标签页中打开),Yahoo Sender Hub,访问于 2026 年 10 月 22 日
- Strengthening Email Ecosystem: Outlook's New Requirements for High-Volume Senders (在新标签页中打开),Microsoft Tech Community,2025 年 4 月 2 日,2025 年 4 月 29 日更新
- Setting up your email (在新标签页中打开),Shopify 帮助中心,访问于 2026 年 10 月 22 日
- Email FAQ (在新标签页中打开),WooCommerce 文档,访问于 2026 年 10 月 22 日
- RFC 7208: Sender Policy Framework (SPF) (在新标签页中打开),IETF,2014 年 4 月
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures (在新标签页中打开),IETF,2011 年 9 月
- RFC 7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC) (在新标签页中打开),IETF,2015 年 3 月(已被 RFC 9989 取代)
- RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC) (在新标签页中打开),IETF,2026 年 5 月
- RFC 9990: DMARC Aggregate Reporting (在新标签页中打开),IETF,2026 年 5 月
- RFC 8058: Signaling One-Click Functionality for List Email Headers (在新标签页中打开),IETF,2017 年 1 月
- RFC 8461: SMTP MTA Strict Transport Security (MTA-STS) (在新标签页中打开),IETF,2018 年 9 月
- Set up BIMI (在新标签页中打开),Google Workspace 管理员帮助,访问于 2026 年 10 月 22 日
全部指南
- WCAG 2.2 AA 网店无障碍检查清单:按页面类型逐项自查面向 Shopify 和 WooCommerce 网店、按页面类型整理的 WCAG 2.2 AA 无障碍检查清单:替代文本、对比度、标签、键盘、焦点、目标尺寸及 2.2 新增标准。
- 收到美国 ADA 网站律师函?首先要检查的几件事ADA 网站无障碍律师函通常指控什么、与 WCAG 有何关系、需要收集哪些材料、为何覆盖层插件修不了代码,以及何时该找律师。本文不构成法律建议。
- 无障碍覆盖层插件与 FTC accessiBe 案:网店店主须知FTC 2025 年的最终命令要求 accessiBe 因 WCAG 合规宣传支付 100 万美元。本文解读命令规定了什么、没有规定什么,以及使用无障碍覆盖层插件的网店该怎么做。