三项电子邮件认证标准协同工作,以提升发件人的邮件投递率并保障收件人的邮件安全。
发送方策略框架(SPF)、域名密钥识别邮件(DKIM)以及基于域的消息认证、报告和一致性(DMARC)有助于确保贵公司发送的邮件是真实的,且恶意行为者未对其进行伪造或篡改。
SPF, DKIM, DMARC
SPF、DKIM 和 DMARC 向接收方邮件服务器表明,某条消息来自经过授权的 IP 地址,发件人身份真实,且其身份公开透明。
让我们逐一介绍它们。
为域名设置 SPF 记录涉及在域名系统(DNS)中添加一种包含已授权出站邮件服务器列表的 TXT 记录。SPF 可验证来自贵公司域名的邮件是否源自经过认证的来源,而非冒充者。
DKIM 密钥由两部分组成:存储在 DNS 中的公钥和存储在发件方邮件服务器上的私钥。附加到每封出站邮件上的 DKIM 签名供收件方的邮件服务器用于验证其真实性。DKIM 还可以指示某封电子邮件是否被篡改。
DMARC 是一种策略机制,允许公司控制当来自其域名的传入邮件未能通过 SPF 或 DKIM 认证时该如何处理。选项包括“拒绝”、“隔离”或“无”。如果有人在试图滥用你的域名,这就像一声警报。
SPF 记录
设置 SPF 记录需要访问注册商处你域名的 DNS 记录,例如 GoDaddy 或类似平台。如果你曾经验证过域名或将它迁移到新服务器,你可能已经更新过其 DNS 记录。
SPF 记录本质上是你域名 DNS 中的一条 TXT 记录。
该 SPF 记录的类型为“TXT”,并以你所使用的 SPF 版本开头。
v=spf1
版本号之后是已授权的 IPv4 或 IPv6 地址列表,如下所示:
v=spf1 ip4:192.168.0.1
此 SPF 记录将授权来自 192.168.0.1 IP 地址的邮件。若要允许一个 IP 地址范围,你可以使用无类别域间路由(CIDR)表示法(有时称为“斜杠”表示法)。
v=spf1 ip4:192.168.0.0/16
上述 SPF 记录将授权从 192.168.0.0 到 192.168.255.255 的 IP 地址范围——这正是“/16”所表示的内容。
使用前缀“a”,SPF 记录可以通过域名名称来授权。下面的记录授权与 example.com 域名关联的服务器。
v=spf1 a:example.com
同样,前缀“mx”(邮件交换)授权特定的邮件服务器。
v=spf1 mx:mail.example.com
要授权第三方发件人,请使用前缀“include”。下面的示例允许一个 IP 范围和 Google 服务器。
v=spf1 ip4:192.168.0.0/16 include:_spf.google.com
还有两种 SPF 限定符。第一种是带有波浪号(~)的 ~all。第二种是带有连字符(-)的 -all。
波浪号版本(~all)是一种软失败限定符。在大多数情况下,接收电子邮件服务器会接受来自不在关联 SPF 记录中的发件人的消息,但会将它们视为可疑。
连字符版本(-all)是一种硬失败限定符。接收电子邮件服务器很可能会将来自未在 SPF 记录中授权的服务器的消息标记为垃圾邮件并予以拒绝。
最后,所有这些可以一起使用以实现相对复杂的授权。
v=spf1 ip4:192.168.0.0/16 a:example.com include:_spf.google.com
请记住,SPF 记录有助于接收电子邮件服务器识别来自贵公司域名的真实电子邮件消息。
DKIM 密钥
DKIM 保护您的域名,并帮助防止任何人冒充贵公司。两个 DKIM 密钥允许收件人的电子邮件服务器验证消息是否由贵公司发送,以及在您发送后未被篡改。
设置 DKIM 的第一步是生成密钥——一个公钥和一个私钥。私钥安全地存储在用于从您的域名发送邮件的服务器上。公钥作为 TXT 记录添加到 DNS 中。
棘手的部分在于生成密钥,因为创建它们的确切过程因电子邮件服务提供商而异。如果您的公司托管自己的邮件服务器,则完全不同。
电子邮件服务提供商提供说明。以下是几个示例,顺序不分先后。
- Mailchimp:设置电子邮件域身份验证
- Klaviyo:如何设置专用发送域名
- Zoho Campaigns:如何验证我的域名
- MailerLite: 电子邮件域身份验证
- 活动家:DKIM、SPF 和 DMARC
- ConvertKit: 使用已验证的域名发送电子邮件
- MailUp: 最大化您的电子邮件送达率
- ActiveCampaign: SPF、DKIM 和 DMARC 身份验证
- Keap: DKIM
在每种情况下,当您添加——复制并粘贴——电子邮件提供商的 CNAME 记录到您的域 DNS 时,DKIM 即告完成。该记录代表用于验证贵公司出站电子邮件营销消息的公钥。
DMARC
DMARC 提供了另一层保护,并指示电子邮件服务器如何处理未能通过 SPF 或 DKIM 身份验证的消息。
DMARC 的基础是放置在您域 DNS 中的 TXT 记录。这将包含至少包含两个元素的 DMARC 策略:
- 一个接收电子邮件身份验证聚合报告的电子邮件地址,以及
- 对未能通过身份验证的电子邮件采取的操作(即拒绝或隔离)。
以下是 DNS 中 DMARC TXT 记录的一个示例:
v=DMARC1; p=quarantine; rua=mailto:armando@example.com; ruf=mailto:armando@example.com.
该记录以 DMARC 版本开头。
v=DMARC1;
"p" 元素指定对未能通过身份验证的电子邮件采取的操作。在本例中,它设置为 "quarantine"(隔离),指示接收服务器将此类消息移至暂存区。其他选项包括 "none"(不阻止邮件,但监控 SPF 或 DKIM 失败)或 "reject"(拒绝)。
p=quarantine;
前缀 "rua" 和 "ruf" 告诉接收服务器将聚合报告(rua — 用于聚合数据的报告 URI)和法医报告(ruf — 用于失败数据的报告 URI)发送到何处。这些报告可以揭露试图冒充您企业的犯罪分子。
其他修饰符包括:
- pct — 受 DMARC 策略约束的电子邮件消息的百分比。
- sp — 子域的 DMARC 策略。
- adkim — 为 DKIM 分配严格模式 (adkim:s) 或宽松模式 (adkim:r)。
- aspf — 为 SPF 分配严格模式 (adkim:s) 或宽松模式 (adkim:r)。
第三方服务可以根据官方标准帮助生成 DMARC 记录。这些服务包括:
- MXToolBox
- PowerDMARC
- Dmarcian
- EasyDMARC
保护发件人和收件人
为您的域名设置 SPF、DKIM 和 DMARC 记录可确保邮件服务器将来自您公司的邮件识别为真实邮件,并拒绝冒充者。此举保护了贵公司的声誉,并使客户免受网络钓鱼攻击和其他类型的电子邮件欺诈的侵害。

