在 Amazon SES 中使用 SPF 对电子邮件进行身份验证
发件人策略框架 (SPF) 是一种电子邮件验证标准,如
RFC 7208 中所定义的,旨在打击电子邮件欺骗。SPF 允许域所有者指定授权哪个邮件服务器来为他们的域发送电子邮件。要指示符合 SPF,域所有者将在域的 DNS 服务器上的 DNS 记录中发布授权邮件服务器的列表。当接收邮件服务器收到 MAIL FROM 地址中包含该域的电子邮件时,它会检查域的 DNS 记录以比较发送邮件服务器与授权邮件服务器并对电子邮件采取相应的措施。
SPF 记录指示 ISP 您已授权 Amazon SES 为您的域发送电子邮件。在使用 Amazon SES 时,您对于是否发布 SPF 记录的决定取决于您是只需要电子邮件通过收件服务器传递 SPF 检查,还是希望电子邮件遵循通过基于域的消息身份验证、报告和一致性 (DMARC) 身份验证 (依赖于 SPF) 所需的其他要求。您可以使用 DKIM 实现 DMARC 验证,但最佳实践是同时使用 DKIM 和 SPF,以实现最大送达率。
- 通过 SPF 检查 – 当您使用 Amazon SES 时,您可以使用两种设置来通过 SPF 检查。第一种设置是使用 Amazon SES 的默认 MAIL FROM 域,而根本不发布 SPF 记录。通过此设置,您可以通过 SPF 检查,因为默认情况下,Amazon SES 将使用自己的 MAIL FROM 域来发送电子邮件。在这种情况下,SPF 检查将通过,因为默认的 MAIL FROM 域是 amazonses.com(或该域的子域),而且发送邮件服务器是 Amazon SES。您可用来通过 SPF 检查的另一种设置是将 Amazon SES 配置为使用您自己的 MAIL FROM 域,在这种情况下,您必须发布 SPF 记录,因为 MAIL FROM 域和发送邮件服务器 Amazon SES 的域是不同的。使用自定义 MAIL FROM 域中提供了有关如何将您的域配置为使用自定义 MAIL FROM 域来发送电子邮件的说明。
- 基于 SPF 通过 DMARC 验证 – 如果需要基于 SPF 的 DMARC 验证成功,则必须设置自定义 MAIL FROM 域并发布 SPF 记录。请注意,DMARC 策略中的对准模式必须是“relaxed”(默认设置)。有关 DMARC 策略的更多信息,请参阅https://dmarc.org/。
添加 SPF 记录
将 TXT 记录添加到您域的 DNS 设置的过程取决于为您提供 DNS 服务的人员,但有关一般说明,请参阅
Amazon SES域验证 TXT 记录中的
将 TXT 记录添加到您域的 DNS 设置。有关特定于 SPF 记录的信息,请访问
http://www.openspf.net 和
RFC 7208。
添加新的 SPF 记录
如果您的自定义 MAIL FROM 域没有现有的 SPF 记录,请使用以下值发布 TXT 记录。记录的名称可以为空或 @,具体取决于您的 DNS 服务。
"v=spf1 include:amazonses.com ~all"
添加到现有 SPF 记录
如果您的域已有一个 SPF 记录,则必须将以下 SPF 机制添加到此现有记录。
include:amazonses.com
为身份设置 Easy DKIM 后,Amazon SES 会自动向您从该身份发送的每封电子邮件添加一个 1024 位的 DKIM 密钥。您可使用 Amazon SES 控制台或者使用 API 配置 Easy DKIM。
注意
要设置 Easy DKIM,您必须修改域的 DNS 设置。如果您使用 Route 53 作为 DNS 提供商,Amazon SES 可以自动为您创建适当的记录。如果您使用其他 DNS 提供商,请参阅您的提供商的文档来了解有关为您的域更改 DNS 设置的更多信息。
在成功配置 Easy DKIM 之后,您可以开始从启用 DKIM 的域发送电子邮件,即使您尚未完成
使用 Amazon SES 验证域中所述的过程。
Easy DKIM 注意事项
当您使用 Easy DKIM 对电子邮件进行身份验证时,以下规则适用:
- 您只需为在“发件人”地址中使用的域设置 Easy DKIM。您无需为在“退回路径”或“回复对象”地址中使用的域设置 Easy DKIM。
- Amazon SES 可在多个 AWS 区域中使用。如果您使用多个 AWS 区域发送电子邮件,则必须在每个区域中都完成 Easy DKIM 设置过程才能确保您的所有电子邮件都进行 DKIM 签名。
- 在您验证域时,您的 Easy DKIM 设置还适用于该域的所有子域,除非您为特定子域设置了 Easy DKIM。
- 如果您为父域、子域和电子邮件地址都设置了 Easy DKIM,则 Amazon SES 会按以下方式应用 Easy DKIM 设置:
- 子域的 DKIM 设置覆盖父域的设置。
- 电子邮件地址的 DKIM 设置覆盖子域(如果适用)和父域的设置。
为域设置 Easy DKIM
本节中的过程向您介绍如何为您已使用 Amazon SES 验证的域设置 Easy DKIM。如果您要为尚未验证的域设置 Easy DKIM,则必须先验证该域。有关验证域的更多信息,请参阅
在 Amazon SES 中验证域。
为域设置 Easy DKIM
- 在导航窗格中的 Identity Management 下,选择 Domains。
- 在域列表中,选择要为其设置 Easy DKIM 的域。
- 在 DKIM 下,选择生成 DKIM 设置。
- 复制此部分中显示的三个 CNAME 记录。或者,您可以选择将记录集下载为 CSV 以将记录副本保存到您的计算机中。下图显示了 DKIM 部分的示例。
- 将 CNAME 记录添加到域的 DNS 配置中。更新域的 DNS 记录:
- 如果您使用 Route 53 作为 DNS 提供商 – 如果您在使用 Amazon SES 发送电子邮件时所用的相同账户上使用 Route 53,请选择使用 Route 53 以自动更新域的 DNS 设置。否则,请完成 Amazon Route 53 开发人员指南 的编辑记录中所示的过程。
- 如果您使用另一个 DNS 提供商 – 不同的提供商具有不同的 DNS 记录更新过程。有关更多信息,请参阅 DNS 提供商提供的文档。注意少数 DNS 提供商不允许记录名称中包含下划线 (_)。但是,DKIM 记录名称中的下划线是必需的。如果您的 DNS 提供商不允许您在记录名称中输入下划线,请联系提供商的客户支持团队以获取帮助。
- 如果您不确定您的 DNS 提供商是谁 – 请询问您的系统管理员以获取更多信息。
Amazon SES 通常会在 72 小时内检测到您的 DNS 配置更改。
为电子邮件地址设置 Easy DKIM
本节中的过程向您介绍如何为您已使用 Amazon SES 验证的特定电子邮件地址设置 Easy DKIM。您只能为属于您已拥有的域的电子邮件地址配置 Easy DKIM,因为您必须更改域的 DNS 设置才能为电子邮件地址设置 Easy DKIM。
重要
您不能为您不拥有的域上的电子邮件地址设置 Easy DKIM。例如,您无法为
gmail.com 或
hotmail.com 地址设置 Easy DKIM。
如果您已为电子邮件地址所属于的域设置了 Easy DKIM,则无需再为电子邮件地址设置 Easy DKIM。在为域设置 Easy DKIM 时,Amazon SES 会自动对来自该域上的每个地址的每封电子邮件进行身份验证。特定电子邮件地址的 Easy DKIM 设置会自动覆盖该地址所属于的域的设置。
为电子邮件地址设置 Easy DKIM
- 在导航窗格中的身份管理下,选择电子邮件。
- 在电子邮件地址列表中,选择要为其设置 Easy DKIM 的地址。
- 在 DKIM 下,选择生成 DKIM 设置。
- 复制此部分中显示的三个 CNAME 记录。或者,您可以选择将记录集下载为 CSV 以将记录副本保存到您的计算机中。
- 将 CNAME 记录添加到域的 DNS 配置中。更新域的 DNS 记录:
- 如果您使用 Route 53 作为您的 DNS 提供商 – 完成 Amazon Route 53 开发人员指南 中的编辑记录中所示的过程。
- 如果您使用另一个 DNS 提供商 – 不同的提供商具有不同的 DNS 记录更新过程。有关更多信息,请参阅 DNS 提供商提供的文档。注意少数 DNS 提供商不允许记录名称中包含下划线 (_)。但是,DKIM 记录名称中的下划线是必需的。如果您的 DNS 提供商不允许您在记录名称中输入下划线,请联系提供商的客户支持团队以获取帮助。
- 如果您不确定您的 DNS 提供商是谁 – 请询问您的系统管理员以获取更多信息。
Amazon SES 通常会在 72 小时内检测到您的 DNS 配置更改。
管理 Easy DKIM
可通过两种方式管理您的身份的 Easy DKIM 设置:通过使用基于 Web 的 Amazon SES 控制台或通过使用 Amazon SES API。您可以使用其中任一方法来获取身份的 DKIM 记录,或者为身份启用或禁用 Easy DKIM。
获取身份的 Easy DKIM 记录
您可以随时使用 Amazon SES 控制台获取您的域或电子邮件地址的 Easy DKIM 记录。
使用控制台获取身份的 Easy DKIM 记录
- 登录 AWS 管理控制台并通过以下网址打开 Amazon SES 控制台:https://console.aws.amazon.com/ses/。
- 在导航窗格中的身份管理下,选择要获取其 Easy DKIM 记录的身份类型。
- 在身份列表中,选择要获取其 Easy DKIM 记录的身份。
- 在 DKIM 部分中,复制三个 CNAME 记录。下图显示了 DKIM 部分的示例。
您还可以使用 Amazon SES API 获取身份的 CNAME 记录。与 API 交互的常用方法是使用 AWS CLI。
使用 AWS CLI 获取身份的 Easy DKIM 记录
- 在命令行处,键入以下命令:
aws ses get-identity-dkim-attributes --identities "example.com
"
在上述示例中,将 example.com
替换为要获取其 Easy DKIM 记录的身份。您可以指定电子邮件地址或域。
- 此命令的输出包含一个
DkimTokens
部分,如以下示例所示:{
"DkimAttributes": {
"example.com": {
"DkimEnabled": true,
"DkimVerificationStatus": "Success",
"DkimTokens": [
"hirjd4exampled5477y22yd23ettobi",
"v3rnz522czcl46quexamplek3efo5o6x",
"y4examplexbhyhnsjcmtvzotfvqjmdqoj"
]
}
}
}
您可以使用令牌创建添加到域的 DNS 设置中的 CNAME 记录。要创建 CNAME 记录,请使用以下模板:token1
._domainkey.example.com CNAME token1
.dkim.amazonses.com token2
._domainkey.example.com CNAME token2
.dkim.amazonses.com token3
._domainkey.example.com CNAME token3
.dkim.amazonses.com
将 token1
的每个实例替换为您在运行 aws ses get-identity-dkim-attributes
命令时收到的列表中的第一个令牌,将 token2
的所有实例替换为列表中的第二个令牌,并将 token3
的所有实例替换为列表中的第三个令牌。例如,对上述示例中所示的令牌应用此模板会生成以下记录:hirjd4exampled5477y22yd23ettobi._domainkey.example.com CNAME hirjd4exampled5477y22yd23ettobi.dkim.amazonses.com
v3rnz522czcl46quexamplek3efo5o6x._domainkey.example.com CNAME v3rnz522czcl46quexamplek3efo5o6x.dkim.amazonses.com
y4examplexbhyhnsjcmtvzotfvqjmdqoj._domainkey.example.com CNAME y4examplexbhyhnsjcmtvzotfvqjmdqoj.dkim.amazonses.com
为身份禁用 Easy DKIM
您可以使用 Amazon SES 控制台快速为身份禁用 DKIM 身份验证。
为身份禁用 Easy DKIM
- 登录 AWS 管理控制台并通过以下网址打开 Amazon SES 控制台:https://console.aws.amazon.com/ses/。
- 在导航窗格中的身份管理下,选择要为其禁用 Easy DKIM 的身份类型。
- 在身份列表中,选择要为其禁用 Easy DKIM 的身份。
- 在 DKIM 部分中的 DKIM: enabled (DKIM: 已启用) 的旁边,选择 disable (禁用),如下图所示。
您还可以使用 Amazon SES API 为身份禁用 Easy DKIM。与 API 交互的常用方法是使用 AWS CLI。
使用 AWS CLI 为身份禁用 Easy DKIM
- 在命令行处,键入以下命令:
aws ses set-identity-dkim-enabled --identity example.com
--no-dkim-enabled
在上述示例中,将 example.com
替换为要为其禁用 Easy DKIM 的身份。您可以指定电子邮件地址或域。
为身份启用 Easy DKIM
如果您之前为身份禁用了 Easy DKIM,则可以使用 Amazon SES 控制台再次启用它。
为身份启用 Easy DKIM
- 登录 AWS 管理控制台并通过以下网址打开 Amazon SES 控制台:https://console.aws.amazon.com/ses/。
- 在导航窗格中的身份管理下,选择要为其启用 Easy DKIM 的身份类型。
- 在身份列表中,选择要为其启用 Easy DKIM 的身份。
- 在 DKIM 部分中的 DKIM: disabled (DKIM: 已禁用) 的旁边,选择 enable (启用),如下图所示。
您还可以使用 Amazon SES API 为身份启用 Easy DKIM。与 API 交互的常用方法是使用 AWS CLI。
使用 AWS CLI 为身份启用 Easy DKIM
- 在命令行处,键入以下命令:
aws ses set-identity-dkim-enabled --identity example.com
--dkim-enabled
在上述示例中,将 example.com
替换为要为其启用 Easy DKIM 的身份。您可以指定电子邮件地址或域。
https://docs.aws.amazon.com/zh_cn/ses/latest/DeveloperGuide/authentication.html