如何将 Amazon SES 与 Amazon Cognito 用户群体集成?

3 分钟阅读
0

我想要了解将 Amazon Simple Email Service(Amazon SES)与 Amazon Cognito 用户群体集成所需执行的步骤。

简短描述

Amazon SES 和 Amazon Cognito 可进行集成,以通过您拥有的自定义电子邮件地址发送电子邮件。按照以下简要步骤操作,可将 Amazon SES 与 Amazon Cognito 用户群体相集成:

  • 考虑 Amazon SES 沙盒的局限性。
  • 将账户移出 Amazon SES 沙盒。
  • 验证 Amazon SES 身份。
  • 使用 Amazon SES 验证的身份配置 Amazon Cognito 用户群体。

解决方法

实施以下步骤,将 Amazon SES 与 Amazon Cognito 用户群体相集成,以代表您发送电子邮件。

Amazon SES 沙盒的局限性

所有新的 Amazon SES 账户都放在 Amazon SES 沙盒中,以防止欺诈和滥用。使用 Amazon SES 沙盒时需要考虑一些限制。要查看具体的沙盒限制,请参阅移出 Amazon SES 沙盒。您必须将您的 Amazon SES 账户移出沙盒,才能充分使用 Amazon SES 服务。

将账户移出 Amazon SES 沙盒

要将账户移出 Amazon SES 沙盒,请执行以下步骤:

1.    查看 Amazon SES 电子邮件配置中的 AWS 区域映射表。映射表显示了可以将 Amazon SES 身份与 Amazon Cognito 用户群体集成的区域。在将 Amazon SES 账户移出沙盒之前,必须确保使用兼容的区域。

2.    请求 Amazon SES 账户的生产访问权限。生产访问请求获得批准后,您可以向任何收件人发送电子邮件。

**重要信息:**您必须切换到全新的 Amazon Cognito 控制台体验,才能在同一区域将 Amazon Cognito 与 Amazon SES 集成。

验证 Amazon SES 身份

要验证 Amazon SES 域身份,请执行以下步骤:

1.    创建域身份

2.    验证 Amazon SES 中的一个或多个域

要验证 Amazon SES 电子邮件身份,请执行以下步骤:

1.    创建电子邮件身份

2.    验证 Amazon SES 中的一个或多个电子邮件地址

**注意:**不支持 Amazon Cognito 和 Amazon SES 的跨账户集成。您不能在一个账户中配置 Amazon Cognito 用户群体,也不能将其与另一个账户中的 Amazon SES 电子邮件地址集成。

使用 Amazon SES 验证的身份配置 Amazon Cognito 用户群体

要将 Amazon Cognito 用户群体与经过验证的 Amazon SES 身份配置相集成,请按照与您的使用案例相关的步骤进行操作。

当验证 Amazon SES 域身份时

1.    登录到新的 Amazon Cognito 控制台,然后选择 User Pools(用户群体)。

2.    从列表中选择相应的用户群体。

3.    依次选择 Messaging(消息)选项卡、Email configuration(电子邮件配置),然后选择 Edit(编辑)。

4.    在 FROM email address(发件人电子邮件地址)下,选择 Amazon SES 验证的域身份。(例如,example.com。)

5.    在 FROM sender name(发件人姓名)下,输入您的电子邮件地址。(例如,admin@example.com。)

由于域已经过验证,因此您可以为域身份添加自定义电子邮件地址。UpdateUserPool API 使用 Amazon SES 身份配置 Amazon Cognito 用户群体。

update-user-pool 命令示例:

$ aws cognito-idp update-user-pool --user-pool-id example_pool_id --email-configuration SourceArn=arn:aws:ses:example_region:example_account_number:identity/example_domain,EmailSendingAccount=DEVELOPER,From=user@example.com --region example_region

**重要信息:**由于 UpdateUserPool API 会重置用户群体的现有配置,因此请先调用 DescribeUserPool API。然后,将所有现有的用户群体参数发送到 UpdateUserPool API。

update-user-pool 命令的描述:

  • example_pool_id 对应于 Amazon Cognito 用户群体 ID。示例:ap-southeast-1_xxxxxxxx。
  • arn:aws:ses:example_region:example_account_number:identity/example_domain 是您的 Amazon SES 域身份的 ARN。
  • 必须将 user@example.com 替换为您的电子邮件身份。
  • example_region 表示您的 Amazon Cognito 用户群体所在的区域。示例:ap-southeast-1。

当验证 Amazon SES 电子邮件身份时

1.    登录到新的 Amazon Cognito 控制台,然后选择 User Pools(用户群体)。

2.    从列表中选择相应的用户群体。

3.    依次选择 Messaging(消息)选项卡、Email configuration(电子邮件配置),然后选择 Edit(编辑)。

4.    在 FROM email address(发件人电子邮件地址)下,选择 Amazon SES 电子邮件域身份。(例如,admin@example.com。)

错误排查

本部分中包含以下信息:对在集成 Amazon Cognito 和 Amazon SES 后发送电子邮件时用户遇到的错误进行故障排查。

未验证的电子邮件地址错误

“未验证电子邮件地址。以下身份未通过区域 AP-SOUTHEAST-1 中的检查:user@example.com。”

Amazon Cognito 在尝试发送电子邮件时收到未经验证的电子邮件地址错误。当您尝试从 Amazon SES 沙盒中的账户向未经验证的电子邮件地址发送电子邮件时,可能会出现此错误。要解决此错误,请将您的 Amazon SES 账户移出沙盒,或在 Amazon SES 中验证收件人的电子邮件地址。

用户没有收到来自 Amazon Cognito 的电子邮件

用户没有收到来自 Amazon Cognito 用户群体的电子邮件。要解决此问题,请确认您是否使用 Amazon Cognito 默认电子邮件功能Amazon SES 电子邮件配置来发送电子邮件。通过 AWS 管理控制台或调用 DescribeUserPool API 验证您的更新。

describe-user-pool 命令示例:

aws cognito-idp describe-user-pool --user-pool-id example_pool_id --region example_region --query 'UserPool.EmailConfiguration'

输出:

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "DEVELOPER",
  "From": "admin@example.com"
}

-或者-

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "COGNITO_DEFAULT"
}

如果 EmailSendingAccount 配置设置为 DEVELOPER,说明您的 Amazon Cognito 用户群体正在使用 Amazon SES 发送电子邮件。验证您的 Amazon SES 账户是否在沙盒中。如果是,请将 Amazon SES 移出沙盒,以便向未经验证的身份发送电子邮件。如果 Amazon SES 账户处于生产状态或退出沙盒模式,请查看 Amazon SES 日志以了解电子邮件传送情况。

如果您在输出中收到 COGNITO_DEFAULT 消息,说明您的 Amazon Cognito 用户群体正在使用默认功能发送电子邮件。使用此默认功能时,Amazon Cognito 对每个用户群体发送的电子邮件数量有配额限制

抛出 LimitExceededException 异常

“超过了操作或账户的每日电子邮件限制。已超过允许的操作次数。如果需要更高的限额,请将您的用户群体配置为使用您自己的 Amazon SES 配置来发送电子邮件。”

当 Amazon Cognito 使用具有每日配额限制默认电子邮件功能发送电子邮件时,用户会收到每日电子邮件限制错误。按照错误消息中的建议,通过更改 Amazon SES 电子邮件配置来设置更高的电子邮件传送量。


AWS 官方
AWS 官方已更新 1 年前