Amazon Cognito 用户池的电子邮件设置 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Cognito 用户池的电子邮件设置

您用户池的客户端应用程序中的某些事件可能导致 Amazon Cognito 向您的用户发送电子邮件。例如,如果您将用户池配置为需要电子邮件验证,则当用户在应用程序中注册新账户或重置其密码时,Amazon Cognito 会发送电子邮件。根据发起电子邮件递送的操作,电子邮件将包含验证码或临时密码。

为处理电子邮件递送,您可以使用以下任一选项:

这些设置是可逆的。如果需要,您可以更新您的用户池以在这些设置之间切换。

默认电子邮件功能

您可以允许 Amazon Cognito 使用服务附带的默认电子邮件功能为您处理电子邮件递送。当您使用默认选项时,Amazon Cognito 针对您的用户池每天只允许有限数量的电子邮件。有关特定限制的信息,请参阅 Amazon Cognito 中的配额。对于典型的生产环境,默认的电子邮件限制低于所需的递送量。要启用更高的传输量,您必须使用您的 Amazon SES 电子邮件配置。

通过默认选项,您可以使用以下任一电子邮件地址作为 FROM 地址:

  • 默认电子邮件地址,即 no-reply@verificationemail.com。

  • 您拥有的自定义电子邮件地址。在可以使用您自己的电子邮件地址之前,您必须向 Amazon SES 验证此地址,并且您必须向 Amazon Cognito 授予权限才能使用它。

Amazon SES 电子邮件配置

您的应用程序需要的递送量可能高于默认选项所提供的递送量。要启用更高的传输量,请将您的用户池配置为使用您的 Amazon SES 配置向用户发送电子邮件。使用您的 Amazon SES 配置还可以提供更强大的功能监控您的电子邮件发送活动

在可以使用 Amazon SES 配置之前,您必须向 Amazon SES 验证一个或多个电子邮件地址。您可以将经验证的电子邮件地址用作您分配给用户池的 FROM 电子邮件地址。然后,Amazon Cognito 发送电子邮件时,它通过代表您调用 Amazon SES 使用您的电子邮件地址。

当您使用您的 Amazon SES 配置时,用户池的电子邮件递送量限制就是适用于您的Amazonaccount.

注意

Amazon Cognito 的可用区域包括:us-east-1、us-east-2、us-west-2、eu-west-1、eu-west-2、eu-west-1、ap-northeast-1、ap-northeast-2、ap-southeast-1、ap-southeast-2 和 ca-southeast-1。Amazon SES 可用区域包括:us-east-1、us-west-2、eu-west-1。

为您的用户池配置电子邮件

完成以下步骤为用户池配置电子邮件设置。根据您要使用的设置,您可能需要通过 Amazon SES 完成步骤,Amazon Identity and Access Management(IAM) 和亚 Amazon Cognito。

注意

在这些步骤中创建的资源无法跨 Amazon 账户进行共享。例如,您不能使用位于一个账户中的 Amazon SES 电子邮件地址配置另一个账户中的用户池。因此,如果您在多个账户中使用 Amazon Cognito,请记得在每个账户中重复这些步骤。

第 1 步:使用 Amazon SES 验证您的电子邮件地址

在配置您的用户池之前,如果您要执行以下任一操作,则必须向 Amazon SES 验证一个或多个电子邮件地址:

  • 使用您自己的电子邮件地址作为 FROM 地址

  • 使用您的 Amazon SES 配置来处理电子邮件递送

通过验证您的电子邮件地址,您确认您拥有该电子邮件地址,这有助于防止未经授权的使用。

有关此过程的步骤,请参阅验证电子邮件地址中的Amazon Simple Email Service 开发人员指南

第 2 步:将您的账户移出 Amazon SES 沙盒

当您首次开始使用 Amazon SES 时,您的Amazon帐户被放置在 Amazon SES 沙箱中。Amazon SES 使用沙盒来防止欺诈和滥用。如果您使用 Amazon SES 配置来处理电子邮件递送,则必须将您的Amazon账户,然后 Amazon Cognito 才能向您的用户发送电子邮件。

如果您使用的是默认 Amazon Cognito 电子邮件功能,则可以跳过此步骤。

Amazon SES 对您可以发送的电子邮件数量和可以发送电子邮件的位置施加限制。您可以仅向已通过 Amazon SES 验证的地址和域发送电子邮件,也可以将其发送到 Amazon SES 邮箱模拟器地址。虽然您的Amazon帐户仍保留在沙盒中,请勿对生产环境中的应用程序使用您的 Amazon SES 配置。在这种情况下,Amazon Cognito 将无法将消息发送到您用户的电子邮件地址。

有关移出沙盒的步骤,请参阅脱离 Amazon SES 沙盒中的Amazon Simple Email Service 开发人员指南。

第 3 步:向 Amazon Cognito 授予电子邮件权限

您可能需要向 Amazon Cognito 授予特定权限,然后它才能向您的用户发送电子邮件。您授予的权限以及用于授予权限的过程取决于您使用的是默认电子邮件功能还是您的 Amazon SES 配置。

如果将您的用户池配置为使用默认电子邮件功能,您可以使用以下任一地址作为 FRM 地址,会通过该地址向您的用户发送电子邮件:

  • 默认地址

  • 自定义地址,该地址必须是 Amazon SES 中已验证的地址

如果您使用的是默认电子邮件地址,Amazon Cognito 不需要额外的权限,您可以跳过此步骤。

如果您使用的是自定义地址,Amazon Cognito 需要额外的权限,以便它可以使用此地址向您的用户发送电子邮件。这些权限由发送授权策略,它被附加到 Amazon SES 中的地址。如果您使用 Amazon Cognito 控制台向您的用户池添加自定义地址,它会自动为您附加此策略。但是,如果您在控制台外部配置您的用户池,例如,使用Amazon CLI或 Amazon Cognito API,您必须自行附加策略。

有关更多信息,请参阅 。使用 Amazon SES 的发送授权中的Amazon Simple Email Service 开发人员指南

例 发送授权策略

以下示例是一个发送授权策略,该策略允许 Amazon Cognito 使用 Amazon SES 验证的电子邮件地址发送电子邮件。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": "cognito-idp.amazonaws.com" }, "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Resource": "<your SES identity ARN>" } ] }

在此示例中,“Sid”值为唯一标识语句的任意字符串。

有关策略语法的更多信息,请参阅Amazon SES 发送授权策略中的Amazon Simple Email Service 开发人员指南

有关更多示例,请参阅Amazon SES 发送授权策略示例中的Amazon Simple Email Service 开发人员指南

如果您将用户池配置为使用您的 Amazon SES 配置,在向用户发送电子邮件时,Amazon Cognito 需要额外的权限才能以您的身份调用 Amazon SES。此授权将通过 IAM 服务授予。

当您使用此选项配置您的用户池时,Amazon Cognito 会创建一个服务相关角色,这是 IAM 角色的一种类型,在Amazonaccount. 此角色包含允许 Amazon Cognito 访问 Amazon SES 并使用您的地址发送电子邮件的权限。

Amazon Cognito 可以创建此角色之前,您用来设置用户池的 IAM 权限必须包含iam:CreateServiceLinkedRoleaction. 有关更新 IAM 中的权限的更多信息,请参阅更改 IAM 用户的权限中的IAM 用户指南

有关 Amazon Cognito 创建的服务相关角色的更多信息,请参阅对 Amazon Cognito 使用服务相关角色

第 4 步:配置您的用户池

如果您要将您的用户池配置为使用以下内容,请完成以下步骤:

  • 自定义 FROM 地址(显示为电子邮件发件人)。

  • 自定义 REPLY-TO 地址,用于接收您的用户发送到您的 FROM 地址的邮件

  • 您的 Amazon SES 配置

如果您要使用 Amazon Cognito 电子邮件功能和地址,则无需完成此过程。

配置您的电子邮件地址

  1. 登录到Amazon Web Services Management Console并打开 Amazon Cognito 控制台https://console.amazonaws.cn/cognito

  2. 选择 Manage User Pools (管理用户池)

  3. Your User Pools (您的用户池) 页面上,选择要配置的用户池。

  4. 在左侧导航菜单中,选择 Message customizations (管理自定义)

  5. 如果您希望使用自定义 FROM 地址,选择 Add custom FROM address (添加自定义 FROM 地址) 并执行以下操作:

    1. 对于 SES region (SES 区域),选择包含验证的电子邮件地址的区域。

    2. 对于 Source ARN (源 ARN),请选择您的电子邮件地址。Amazon Cognito 控制台可让您仅选择所选区域中已通过 Amazon SES 验证的那些电子邮件地址。

    3. 对于 FROM email address (FROM 电子邮件地址),选择您的电子邮件地址。您可以提供您的电子邮件地址或电子邮件地址以及您的姓名。

  6. Do you want to send emails through your Amazon SES Configuration? (是否要通过 Amazon SES 配置发送电子邮件?) 下,选择 Yes - Use Amazon SES (是 - 使用 Amazon SES)No - Use Cognito (Default) (否 -使用 Cognito (默认))

    如果您选择使用 Amazon SES,Amazon Cognito 将在您保存更改后创建服务相关角色。

  7. 如果您希望使用自定义 REPLY-TO 地址,请选择 Add custom REPLY-TO address (添加自定义 REPLY-TO 地址)。然后,指定要用来接收用户发送到您的 FROM 地址的邮件的电子邮件地址。

  8. 当您完成设置您的电子邮件账户选项时,选择 Save changes (保存更改)

Message customizations (消息自定义) 页面还提供了用于自定义验证消息自定义邀请消息的选项。