SPF、DKIM 与 DMARC:邮件身份认证完整指南

通过这份 SPF、DKIM、DMARC 完整指南掌握邮件身份认证。了解各协议的作用,学习如何配置 DNS 记录、排查常见问题、提升邮件送达率。

SPF DKIM DMARC
SPF、DKIM 与 DMARC:邮件身份认证完整指南?

邮件身份认证是确保邮件可靠送达的基础。如果没有正确配置 SPF、DKIM 和 DMARC,你精心撰写的邮件可能永远无法到达客户的收件箱,而是被归入垃圾邮件文件夹,甚至直接被拒绝。

这份完整指南将介绍每种邮件身份认证协议的作用,提供 DNS 配置的分步说明,涵盖常见问题的排查方法,并教你如何验证配置是否正确生效。

为什么邮件身份认证至关重要

电子邮件诞生于一个安全性并非首要考量的年代。最初的 SMTP 协议没有内置验证机制来确认邮件确实来自其声称的发件人。这个根本性的漏洞导致了邮件伪造、网络钓鱼攻击和垃圾邮件的泛滥。

邮件身份认证协议通过允许域名所有者指定以下内容来解决这一问题:

  • 哪些服务器可以代表其发送邮件(SPF)
  • 证明邮件真实且未被篡改的加密证明(DKIM)
  • 对认证失败的邮件采取什么处理措施(DMARC)

认证不当对业务的影响

缺少正确的邮件身份认证:

  • 送达率降低:Gmail、Microsoft、Yahoo 等主要邮件服务商会更严格地过滤未经认证的邮件
  • 垃圾邮件率上升:你的正常邮件要与使用你域名的伪造邮件竞争
  • 品牌受损:冒充你品牌的网络钓鱼攻击会损害客户信任
  • 收入损失:营销活动无法触达已订阅的用户
  • 合规风险:许多法规现已要求进行正确的邮件身份认证

认证三重奏

SPF、DKIM 和 DMARC 协同构成完整的认证体系:

协议作用类比
SPF列出授权发送服务器标有已授权办公室的公司信头
DKIM对邮件进行加密签名证明真实性的蜡封
DMARC设置失败处理策略并生成报告对可疑信件的处理说明

每个协议应对不同的攻击向量。SPF 防止未授权的服务器冒充你发件。DKIM 防止发送后邮件内容被篡改。DMARC 将二者联系起来,并提供认证结果的可见性。

深入理解 SPF(发件人策略框架)

SPF(Sender Policy Framework,发件人策略框架)是一种基于 DNS 的邮件认证方法,用于指定哪些邮件服务器有权代表你的域名发送邮件。

SPF 的工作原理

当邮件到达接收服务器时,该服务器会查找发件人域名的 SPF 记录,然后检查发送邮件的 IP 地址是否在授权列表中。如果匹配,SPF 通过;否则,SPF 失败。

SPF 验证流程:

  1. 你从营销平台发送邮件
  2. 接收服务器从退信路径(信封发件人)中提取你的域名
  3. 服务器查询你域名的 DNS SPF 记录
  4. 将发送 IP 与 SPF 记录的授权列表进行比对
  5. 服务器记录通过、失败、软失败或中性结果

SPF 记录语法

SPF 记录以 TXT 记录形式发布在域名 DNS 中。基本结构如下:

v=spf1 [mechanisms] [qualifier]all

版本标签: 始终以 v=spf1 开头

机制: 定义谁可以发送

机制说明示例
include:信任另一域名的 SPFinclude:spf.brevo.com
ip4:授权特定 IPv4 地址ip4:192.168.1.1
ip6:授权特定 IPv6 地址ip6:2001:db8::1
a允许域名 A 记录的 IPa
mx允许域名邮件服务器的 IPmx
ptr反向 DNS(已废弃)ptr:example.com
exists:条件检查exists:%{i}.spf.example.com

限定符: 定义匹配时的处理方式

限定符含义结果
+通过(默认)已授权
-硬失败未授权,拒绝
~软失败未授权,接受但标记
?中性无策略

all 机制: 应用于所有未匹配前面机制的情况

SPF 记录示例

使用单一邮件服务商的基本配置:

v=spf1 include:spf.brevo.com -all

这条记录授权 Brevo 代表你的域名发送邮件,并拒绝其他所有发件人。

多个邮件服务:

v=spf1 include:spf.brevo.com include:_spf.google.com include:spf.protection.outlook.com -all

这条记录授权 Brevo、Google Workspace 和 Microsoft 365。

包含自有邮件服务器:

v=spf1 ip4:203.0.113.10 include:spf.brevo.com -all

这条记录授权指定 IP 地址(你的服务器)以及 Brevo。

测试阶段使用软失败:

v=spf1 include:spf.brevo.com ~all

使用 ~all 代替 -all 会标记失败但不拒绝。适合初始配置阶段使用。

配置 SPF 记录的步骤

第一步:确认所有发件来源

列出所有从你域名发送邮件的服务:

  • 邮件营销平台(Brevo、Mailchimp 等)
  • 事务性邮件服务
  • CRM 系统
  • 工单软件
  • 企业邮箱(Google Workspace、Microsoft 365)
  • 自有邮件服务器

第二步:收集 SPF include 声明

每个邮件服务商都会在文档中提供所需的 SPF include。常见示例:

服务商SPF Include
Brevoinclude:spf.brevo.com
Google Workspaceinclude:_spf.google.com
Microsoft 365include:spf.protection.outlook.com
Amazon SESinclude:amazonses.com
SendGridinclude:sendgrid.net
Mailguninclude:mailgun.org

第三步:创建 SPF 记录

将所有 include 合并为一条记录:

v=spf1 include:spf.brevo.com include:_spf.google.com -all

第四步:添加 DNS 记录

在 DNS 管理界面中:

  • 类型:TXT
  • 主机/名称:@(或域名根部留空)
  • 值:完整的 SPF 记录
  • TTL:3600(或默认值)

第五步:验证记录

使用 DNS 查询工具确认:

Terminal window
dig TXT yourdomain.com

也可使用 MXToolbox SPF Lookup 等在线工具。

SPF 限制与最佳实践

10 次 DNS 查询限制:

SPF 最多允许 10 次 DNS 查询。每个 include: 计为一次查询,而被包含的记录中可能还有自己的 include,也计入总数。超过限制会导致 SPF permerror(永久性错误),所有检查均失败。

保持在限制以内的策略:

  • 尽量直接使用 IP 地址(ip4: 不计入查询次数)
  • 合并使用同一服务商的服务
  • 使用 SPF 扁平化服务将 include 转换为 IP 地址
  • 删除已停用服务的旧 include

其他 SPF 最佳实践:

  • 每个域名只能有一条 SPF 记录(多条记录会导致失败)
  • 配置时先使用 ~all(软失败),确认无误后改为 -all
  • 更换邮件服务商后及时更新 SPF
  • 不要使用已废弃的 ptr 机制
  • 记录尽量保持简洁

SPF 常见错误

多条 SPF 记录:

错误:
v=spf1 include:spf.brevo.com -all
v=spf1 include:_spf.google.com -all
正确:
v=spf1 include:spf.brevo.com include:_spf.google.com -all

超过 DNS 查询限制:

如果有很多 include,需检查查询总数。使用 SPF 分析工具确认不超过 10 次。

更换服务商后忘记更新:

从一个邮件服务商切换到另一个时,请删除旧的 include 并添加新的。

使用 +all:

切勿使用 +all,这会授权任何人代表你的域名发件。

深入理解 DKIM(域名密钥识别邮件)

DKIM(DomainKeys Identified Mail,域名密钥识别邮件)为你的邮件添加加密签名,证明邮件来自你的域名且在传输过程中未被修改。

DKIM 的工作原理

DKIM 使用公钥密码学:

  1. 邮件服务商生成公钥/私钥对
  2. 你将公钥发布到 DNS
  3. 服务商用私钥对发出的邮件进行签名
  4. 接收服务器从 DNS 获取你的公钥
  5. 用公钥验证签名
  6. 有效签名证明真实性和完整性

DKIM 签名的内容:

DKIM 签名通常涵盖特定邮件头和正文:

  • From 头(必须)
  • Subject 头
  • Date 头
  • 邮件正文
  • 其他已配置的头

这可以防止攻击者在发送后修改这些内容。

DKIM 记录结构

DKIM 记录以 TXT 记录形式发布,命名格式如下:

selector._domainkey.yourdomain.com

选择器(selector)是一个唯一标识符,允许你拥有多个 DKIM 密钥。不同邮件服务使用不同的选择器(如 brevo、google、s1、s2)。

DKIM 记录内容:

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
标签说明示例
v=版本(固定为 DKIM1)v=DKIM1
k=密钥类型(通常为 rsa)k=rsa
p=公钥(base64 编码)p=MIGfMA0…
t=标志(可选)t=s(严格模式)
h=哈希算法(可选)h=sha256

配置 DKIM 的步骤

第一步:生成 DKIM 密钥

邮件服务商通常会为你生成密钥。在 Brevo 中:

  1. 进入设置 > 发件人、域名和专用 IP
  2. 选择你的域名
  3. 找到 DKIM 部分
  4. 复制提供的 DNS 记录

对于自托管邮件服务器,使用 OpenSSL 生成密钥:

Terminal window
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key

第二步:添加 DKIM DNS 记录

在 DNS 管理界面:

  • 类型:TXT
  • 主机/名称:selector._domainkey(如 brevo._domainkey)
  • 值:服务商提供的 DKIM 记录
  • TTL:3600

第三步:启用 DKIM 签名

在邮件服务商的设置中,为你的域名启用 DKIM 签名,告知服务商对外发邮件进行签名。

第四步:验证配置

发送测试邮件并检查邮件头中的 DKIM-Signature。可使用以下工具:

  • mail-tester.com
  • DKIM Validator
  • MXToolbox DKIM Lookup

DKIM 最佳实践

使用 2048 位密钥:

旧版 1024 位密钥被认为安全性不足。现代安全标准建议最低使用 2048 位 RSA 密钥。

定期轮换密钥:

虽然没有严格要求,但每年轮换一次 DKIM 密钥是良好的安全实践。添加新密钥后再删除旧密钥,避免出现认证空窗期。

监控密钥泄露:

如果私钥泄露,攻击者就能以你的身份签名邮件。需监控异常的认证模式。

为不同服务使用不同选择器:

每个邮件服务商应使用唯一的选择器,方便独立管理密钥,不会与其他服务冲突。

检查 DNS 传播情况:

DKIM 密钥可能较长。确认你的 DNS 服务商支持足够长度的 TXT 记录。部分服务商需要将密钥拆分为多个字符串。

解读 DKIM 邮件头

收到邮件时,DKIM-Signature 头会显示:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=brevo;
h=from:to:subject:date:message-id;
bh=base64hashofbody;
b=base64signature;
标签含义
v=版本(固定为 1)
a=算法(推荐 rsa-sha256)
c=规范化方式(relaxed 允许微小改动)
d=签名域名
s=选择器
h=已签名的邮件头
bh=正文哈希值
b=签名

深入理解 DMARC(基于域名的邮件认证、报告与一致性)

DMARC 在 SPF 和 DKIM 的基础上增加了策略执行和报告功能。它告诉接收服务器在认证失败时应如何处理邮件,并向你发送认证结果报告。

DMARC 的工作原理

DMARC 增加了两项关键能力:

  1. 策略执行:定义接收方在认证失败时应如何处理邮件
  2. 报告:接收关于谁在使用你的域名发件的数据

DMARC 验证流程:

  1. 接收服务器收到声称来自你域名的邮件
  2. 检查 SPF(发送 IP 是否匹配?)
  3. 检查 DKIM(签名是否有效?)
  4. 检查 DMARC 对齐(已认证的域名是否与 From 头匹配?)
  5. 如果对齐失败,应用你的 DMARC 策略
  6. 向你发送汇总报告和/或取证报告

DMARC 对齐

DMARC 要求 From 头中的域名与通过 SPF 或 DKIM 认证的域名对齐

SPF 对齐: 退信路径(信封发件人)中的域名必须与 From 头域名匹配或为其子域名。

DKIM 对齐: DKIM 签名中的域名(d= 标签)必须与 From 头域名匹配或为其子域名。

对齐模式:

模式说明
严格(s)要求完全匹配域名
宽松(r)允许子域名(默认)

宽松对齐时,如果 From 头显示 [email protected],DKIM 使用 brevo.example.com 签名,则对齐通过,因为两者共享 example.com 组织域名。

DMARC 记录语法

DMARC 记录以 TXT 记录形式发布在 _dmarc.yourdomain.com

v=DMARC1; p=reject; rua=mailto:[email protected]; pct=100

必需标签:

标签说明取值
v=版本DMARC1(固定)
p=策略none、quarantine、reject

可选标签:

标签说明默认值
rua=汇总报告地址
ruf=取证报告地址
pct=策略应用比例100
sp=子域名策略与 p= 相同
adkim=DKIM 对齐模式r(宽松)
aspf=SPF 对齐模式r(宽松)
fo=取证报告选项0
ri=报告间隔(秒)86400

DMARC 策略详解

p=none(仅监控):

对失败不采取任何行动,正常投递邮件。在分析报告、修复认证问题期间使用此策略。

v=DMARC1; p=none; rua=mailto:[email protected]

p=quarantine(进入垃圾邮件箱):

失败的邮件被发送到垃圾/垃圾邮件文件夹。是正式拒绝前的良好过渡步骤。

v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100

p=reject(拦截):

失败的邮件被完全拒绝。保护力度最强,但需先确保所有合法来源都能通过认证。

v=DMARC1; p=reject; rua=mailto:[email protected]; pct=100

配置 DMARC 的步骤

第一步:确保 SPF 和 DKIM 已正确配置

DMARC 依赖 SPF 和 DKIM。在添加 DMARC 之前,请先验证两者均已正确配置。

第二步:从监控策略开始(p=none)

先使用最宽松的策略收集数据,不影响正常送达:

v=DMARC1; p=none; rua=mailto:[email protected]

第三步:添加 DNS 记录

在 DNS 管理界面:

  • 类型:TXT
  • 主机/名称:_dmarc
  • 值:你的 DMARC 记录
  • TTL:3600

第四步:分析报告 2 至 4 周

DMARC 汇总报告每天以 XML 文件形式发送,内容包括:

  • 使用你域名发送邮件的 IP 地址
  • SPF 和 DKIM 通过率/失败率
  • DMARC 对齐结果
  • 接收服务器的处理措施

使用 DMARC 报告分析工具可视化这些数据:

  • DMARC Analyzer
  • Postmark DMARC
  • Valimail
  • dmarcian

第五步:修复认证问题

报告中常见的问题包括:

  • 合法服务未包含在 SPF 中
  • 某发件服务未启用 DKIM
  • 第三方服务未经适当认证即发件
  • 邮件转发破坏了 SPF 对齐

第六步:逐步收紧策略

合法来源稳定通过认证后:

  1. 切换为 p=quarantine; pct=10(对 10% 的失败邮件执行隔离)
  2. 将 pct 逐步提升至 25、50、75、100
  3. 切换为 p=reject; pct=10
  4. 逐步提升至完全拒绝

第七步:持续维护与监控

继续审查报告。新的发件来源、服务商变更或配置偏差都可能导致认证失败。

解读 DMARC 报告

汇总报告(rua):

每日 XML 汇总,内容包括:

  • 报告机构
  • 日期范围
  • 你发布的策略
  • 按来源 IP 分类的认证结果
  • 邮件数量

示例片段:

<record>
<source_ip>203.0.113.10</source_ip>
<count>1250</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</record>

取证报告(ruf):

针对失败邮件的单条详细信息。内容更详尽但涉及隐私。许多接收方不发送取证报告。

DMARC 最佳实践

始终从 p=none 开始:

直接跳到 reject 可能会拦截合法邮件。请先监控。

为报告使用专用邮箱:

DMARC 报告数量可能很多。使用专用地址或第三方服务接收。

设置子域名策略(sp=):

如果你不从子域名发件,设置 sp=reject 可防止子域名被仿冒。

使用百分比(pct=)逐步推进:

pct 标签允许你对一定比例的失败邮件执行策略,同时继续监控其余部分。

考虑使用专业 DMARC 服务:

对于大型组织,Valimail、dmarcian 或 Postmark DMARC 等服务提供比原始 XML 文件更好的报告分析功能。

DNS 记录配置:完整操作指南

配置邮件身份认证需要添加特定的 DNS 记录。本节提供主要 DNS 服务商的完整操作说明。

收集所需信息

开始前,请从邮件服务商处收集以下信息:

SPF 所需:

  • 所有 include 声明(如 include:spf.brevo.com)
  • 需要授权的任何特定 IP 地址

DKIM 所需:

  • 选择器名称(如 brevo、google、s1)
  • 完整的 DKIM 密钥值

DMARC 所需:

  • 报告邮箱地址

在常见 DNS 服务商中添加记录

Cloudflare:

  1. 登录 Cloudflare 仪表板
  2. 选择你的域名
  3. 进入 DNS > 记录
  4. 点击添加记录
  5. SPF:类型=TXT,名称=@,内容=你的 SPF 记录
  6. DKIM:类型=TXT,名称=selector._domainkey,内容=DKIM 密钥
  7. DMARC:类型=TXT,名称=_dmarc,内容=DMARC 记录
  8. 点击保存

Google Domains/Squarespace:

  1. 进入域名的 DNS 设置
  2. 滚动到自定义记录
  3. 点击管理自定义记录
  4. 为每条记录填写对应的类型、主机名和数据
  5. SPF:主机名=@,类型=TXT,数据=SPF 记录
  6. DKIM:主机名=selector._domainkey,类型=TXT,数据=DKIM 密钥
  7. DMARC:主机名=_dmarc,类型=TXT,数据=DMARC 记录

GoDaddy:

  1. 进入我的产品 > 域名
  2. 点击域名旁的 DNS
  3. 滚动到记录部分
  4. 为每条新记录点击添加
  5. 类型选择 TXT
  6. 填写名称(SPF 填 @,DKIM 填 selector._domainkey,DMARC 填 _dmarc)
  7. 填写值
  8. 保存

Namecheap:

  1. 进入域名列表 > 管理
  2. 点击高级 DNS
  3. 为每条记录点击添加新记录
  4. 选择 TXT 记录
  5. 主机:SPF 填 @,DKIM 填 selector._domainkey,DMARC 填 _dmarc
  6. 值:填写记录内容
  7. 保存所有更改

DNS 传播

添加记录后,更改需要一定时间才能全球生效,通常需要:

  • 5 至 30 分钟开始生效
  • 最多 48 小时完全全球传播

使用 dig 或 nslookup 验证:

Terminal window
dig TXT yourdomain.com
dig TXT selector._domainkey.yourdomain.com
dig TXT _dmarc.yourdomain.com

也可以使用 whatsmydns.net 等在线工具检查全球传播情况。

完整配置示例

使用 Brevo 和 Google Workspace 的域名配置示例:

SPF 记录(@ 的 TXT 记录):

v=spf1 include:spf.brevo.com include:_spf.google.com -all

Brevo 的 DKIM 记录(brevo._domainkey 的 TXT 记录):

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA... [来自 Brevo 仪表板的密钥]

Google 的 DKIM 记录(google._domainkey 的 TXT 记录):

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BA... [来自 Google 管理员的密钥]

DMARC 记录(_dmarc 的 TXT 记录):

v=DMARC1; p=none; rua=mailto:[email protected]

常见问题排查

即使仔细配置,邮件认证有时仍会失败。以下是常见问题及解决方法。

SPF 问题排查

找不到 SPF 记录:

表现:SPF 检查显示”none”或”无记录”

原因:

  • 记录未添加到 DNS
  • 记录添加到了错误位置(子域名而非根域名)
  • DNS 传播尚未完成

解决方案:

  • dig TXT yourdomain.com 验证记录是否存在
  • 检查名称/主机字段(根域名应填 @ 或留空)
  • 等待 DNS 传播(最多 48 小时)

SPF PermError(查询次数过多):

表现:SPF 结果显示”permerror”

原因:

  • SPF 记录中超过 10 次 DNS 查询
  • include 中包含过多嵌套 include

解决方案:

  • 审查 include,删除未使用的
  • 尽量用 ip4: 替换 include
  • 使用 SPF 扁平化服务
  • 合并服务,减少服务商数量

合法邮件 SPF 软失败或失败:

表现:合法邮件 SPF 失败

原因:

  • 发件服务未包含在 SPF 中
  • 从未授权的 IP 发件
  • 使用了会更改信封发件人的中继

解决方案:

  • 为发件服务添加缺失的 include
  • 从邮件头中查看实际发件 IP
  • 联系邮件服务商确认正确的 SPF 设置

多条 SPF 记录:

表现:SPF 显示 permerror 或随机失败

原因:

  • 存在两条或更多包含 v=spf1 的 TXT 记录

解决方案:

  • 将所有机制合并为一条 SPF 记录
  • 删除重复的 SPF 记录

DKIM 问题排查

缺少 DKIM 签名:

表现:邮件中没有 DKIM-Signature 头

原因:

  • 邮件服务商未启用 DKIM 签名
  • 域名验证未完成
  • 通过非 DKIM 路径发送

解决方案:

  • 在服务商设置中启用 DKIM
  • 完成域名验证步骤
  • 查阅服务商 DKIM 配置文档

DKIM 验证失败:

表现:认证结果中 DKIM 显示”fail”

原因:

  • DNS 记录未发布或记录有误
  • 使用了错误的选择器
  • DNS 中的密钥与签名密钥不匹配
  • 邮件在传输过程中被修改

解决方案:

  • 验证 selector._domainkey.domain 处是否存在 DNS 记录
  • 对比 DKIM-Signature 头中的选择器与 DNS
  • 如怀疑密钥不匹配,重新生成密钥
  • 检查是否有邮件过滤器或中继修改了邮件

DKIM 密钥过长无法保存到 DNS:

表现:无法保存 DKIM 记录,出现截断错误

原因:

  • 2048 位密钥超过单条 TXT 记录长度限制
  • DNS 服务商有字符数限制

解决方案:

  • 将密钥拆分为多个引用字符串(大多数服务商会自动处理)
  • 检查 DNS 服务商是否支持长 TXT 记录
  • 临时使用 1024 位密钥(安全性较低)

拆分 DKIM 记录示例:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...密钥续写..."

DMARC 问题排查

DMARC 对齐失败:

表现:SPF 和 DKIM 通过但 DMARC 失败

原因:

  • 已认证的域名与 From 头域名不匹配
  • 第三方发件服务使用其自有域名
  • 信封发件人配置有误

解决方案:

  • 确保邮件服务商用你的域名签名(自定义 DKIM)
  • 配置自定义 Return-Path/信封发件人
  • 使用宽松对齐模式(adkim=r;aspf=r)

未收到 DMARC 报告:

表现:没有汇总报告发送来

原因:

  • rua 地址有误
  • 报告邮箱无法接收外部邮件
  • 报告被归入垃圾邮件
  • 接收服务器不发送报告

解决方案:

  • 验证 rua 语法:rua=mailto:[email protected]
  • 测试报告地址能否接收外部邮件
  • 检查垃圾邮件文件夹
  • 注意:并非所有接收方都发送 DMARC 报告

找不到 DMARC 记录:

表现:DMARC 检查显示”无记录”

原因:

  • 记录发布位置有误
  • 格式错误(必须是 _dmarc 子域名的 TXT 记录)

解决方案:

  • 记录必须位于 _dmarc.yourdomain.com
  • dig TXT _dmarc.yourdomain.com 验证

通用排查工具

在线验证工具:

  • MXToolbox(mxtoolbox.com):SPF、DKIM、DMARC 查询
  • Mail Tester(mail-tester.com):发送测试邮件进行全面分析
  • DMARC Analyzer:报告可视化
  • Google Admin Toolbox:检查 MX、SPF、DKIM

命令行工具:

Terminal window
# 检查 SPF
dig TXT yourdomain.com
# 检查 DKIM
dig TXT selector._domainkey.yourdomain.com
# 检查 DMARC
dig TXT _dmarc.yourdomain.com
# 通过指定 DNS 服务器检查
dig @8.8.8.8 TXT yourdomain.com

邮件头分析:

检查收到邮件中的 Authentication-Results 头:

Authentication-Results: mx.google.com;
dkim=pass header.d=example.com header.s=brevo;
spf=pass smtp.mailfrom=example.com;
dmarc=pass action=none header.from=example.com

邮件身份认证与 Brevo

Brevo 提供全面的邮件身份认证支持,让你轻松为发件域名配置 SPF、DKIM 和 DMARC。

在 Brevo 中配置认证

第一步:添加域名

  1. 登录 Brevo 账号
  2. 进入设置 > 发件人、域名和专用 IP
  3. 点击添加域名
  4. 输入你的域名

第二步:配置 SPF

Brevo 提供需要添加到 DNS 的 SPF include:

include:spf.brevo.com

将其添加到现有 SPF 记录,或新建一条:

v=spf1 include:spf.brevo.com -all

第三步:配置 DKIM

Brevo 自动生成 DKIM 密钥。复制提供的记录:

  1. 进入 Brevo 的域名设置
  2. 找到 DKIM 部分
  3. 复制 DNS 记录名称和值
  4. 将 TXT 记录添加到 DNS

第四步:验证配置

Brevo 会自动检查你的 DNS 记录。绿色勾选标记表示配置成功。

正确配置 Brevo 认证的好处

为 Brevo 正确配置认证后:

  • 更高的收件箱到达率:Gmail、Microsoft 等服务商信任已认证的邮件
  • 品牌保护:DMARC 防止你的域名被仿冒
  • 更准确的分析:准确追踪打开率和点击率
  • 声誉积累:持续认证有助于建立发件人声誉

Tajo 集成优势

使用 Tajo 将 Shopify 商店与 Brevo 连接,可获得额外优势:

  • 自动同步客户数据:客户数据无缝流入 Brevo,支持个性化邮件
  • 事件追踪:购买、浏览和购物车事件触发已认证的事务性邮件
  • 多渠道协调:在邮件、短信和 WhatsApp 间保持一致的认证
  • 统一分析:将邮件表现与其他营销指标一起追踪

正确的邮件认证与实时客户数据同步相结合,确保你的邮件不仅能到达收件箱,还能与每位收件人产生共鸣。

常见问题

SPF、DKIM 和 DMARC 有什么区别?

SPF 指定哪些服务器可以代表你的域名发件。DKIM 添加加密签名以证明邮件真实性。DMARC 设置接收方在认证失败时应如何处理,并提供报告功能。三者共同构成完整的邮件认证体系。

三种协议都需要配置吗?

为获得最佳的送达率和安全性,是的。单独使用 SPF 容易受到仿冒攻击。单独使用 DKIM 无法指定策略。DMARC 需要 SPF 或 DKIM 才能运作。三者合力提供全面的保护和最佳的收件箱到达率。

邮件身份认证需要多长时间才能生效?

DNS 更改通常在 30 分钟至 48 小时内传播完成。传播完成后,认证立即生效。然而,基于持续认证建立发件人声誉需要数周至数月时间。

设置 p=reject 的 DMARC 会拦截我的合法邮件吗?

如果配置不当,确实有可能。这就是为什么要始终从 p=none(监控)开始,分析报告 2 至 4 周,修复所有问题,然后逐步切换到 quarantine 和 reject。切勿跳过监控阶段。

SPF 对齐和 DKIM 对齐有什么区别?

对齐是指已认证的域名与可见的 From 头域名相匹配。SPF 对齐比较的是 Return-Path 域名。DKIM 对齐比较的是签名域名(d= 标签)。DMARC 要求至少一项对齐通过。

一个域名可以有多个 DKIM 密钥吗?

可以。每个邮件服务可以使用不同的选择器(如 brevo._domainkey、google._domainkey),允许多个服务独立使用 DKIM 签名。DKIM 选择器的数量没有限制。

配置认证后邮件仍然进入垃圾邮件,是什么原因?

认证是进入收件箱的必要条件,但并非充分条件。其他影响因素包括发件人声誉、内容质量、互动率和列表健康度。认证让你通过第一道过滤;良好的发送实践决定最终结果。

如何解读 DMARC 汇总报告?

DMARC 汇总报告是 XML 文件。使用 dmarcian、Postmark DMARC 或 DMARC Analyzer 等工具解析并可视化。这些工具会显示哪些 IP 以你的域名发件,以及其认证通过率/失败率。

超过 SPF 的 10 次查询限制会怎样?

SPF 返回永久性错误(permerror),所有 SPF 检查均失败。解决方法是删除未使用的 include,尽量用 IP 地址替换 include,或使用 SPF 扁平化服务。

SPF 记录中应该使用 -all 还是 ~all?

测试阶段和建立信心时使用 ~all(软失败)。确认所有合法来源均可通过后,切换为 -all(硬失败)以获得更强保护。软失败会标记失败但不拒绝,硬失败则授权拒绝。

多久应该轮换一次 DKIM 密钥?

没有严格要求,但每年轮换是良好的安全实践。轮换时,先添加新密钥,等待 DNS 传播,启用新密钥签名,然后在过渡期后删除旧密钥。

子域名需要单独配置认证吗?

SPF:是的,如果要从子域名发件,每个子域名都需要自己的 SPF 记录。 DKIM:密钥可以共用或按子域名分开设置。 DMARC:子域名会继承父域名的策略,除非设置了 sp= 或子域名有自己的 DMARC 记录。

总结

通过 SPF、DKIM 和 DMARC 实现邮件身份认证,对于依赖邮件通讯的企业来说已不可或缺。这些协议保护你的品牌免受仿冒,提升送达率,并为有效的邮件营销奠定信任基础。

核心要点:

  • SPF 通过 DNS 授权发送服务器
  • DKIM 用加密签名证明邮件真实性
  • DMARC 执行策略并通过报告提供可见性
  • 在执行拒绝策略前,先从监控(p=none)开始
  • 所有合法发件来源必须正确配置
  • 定期监控防止配置偏差

对于使用 Shopify 的电商企业,将正确的邮件认证与通过 Tajo 和 Brevo 实现的客户数据集成相结合,可以打造强大的基础。事务性邮件可靠地到达客户,营销活动获得更好的收件箱到达率,品牌也免受仿冒攻击。

准备好提升邮件送达率了吗?按照本指南中的工具检查当前的认证配置,然后按照分步说明系统地配置 SPF、DKIM 和 DMARC。

了解 Tajo 如何与 Brevo 集成,为你的 Shopify 商店提供无缝的邮件认证以及实时客户数据同步。

相关文章

Frequently Asked Questions

SPF、DKIM 和 DMARC 分别是什么?
SPF 验证发送服务器,DKIM 为邮件添加数字签名,DMARC 告诉接收方如何处理未通过认证的邮件。三者协同工作,共同保护你的邮件免受欺骗攻击。
三种协议都需要配置吗?
是的。Google 和 Yahoo 现已要求所有发件人配置 SPF 和 DKIM,每日发送量超过 5,000 封的发件人还需配置 DMARC。三者联合部署可提供最佳的送达率和安全性。
如何配置 SPF、DKIM 和 DMARC?
在域名 DNS 中添加对应记录:SPF 以 TXT 记录列出授权发送服务器,DKIM 以 TXT 记录存储公钥,DMARC 以 TXT 记录设置处理策略。你的邮件平台会提供具体数值。

Subscribe to updates

blog-updates

Drop your email or phone number — we'll send you what matters next.

免费开始使用Brevo