无法从Cognito(CDK)发送SES电子邮件(不在SANDBOX中)



我不能在SES中使用具有CognitoUserPool电子邮件属性的已验证电子邮件。

我在SES中设置了一个经过验证的电子邮件身份。SES帐户已脱离沙箱模式。SES帐户位于us-east-1中。

当我在CDK堆栈中创建一个cognito用户池时

const clientUserPool = new cognito.UserPool(
this,
'userpool',
{
...
selfSignUpEnabled: true,
email: cognito.UserPoolEmail.withSES({
fromEmail: '<my-verified-email>'
sesRegion: 'us-east-1',
}),
}

部署时出现以下错误:Cognito received the following error from Amazon SES when attempting to send email: Email address is not verified. The following identities failed the check in region US-EAST-1: arn:aws:ses:us-east-1:<accountId>:identity/<my-verified-email>(Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID: <requestId>; Proxy: null)

当我尝试在AWS控制台中执行等效操作时,它运行良好。

  1. 导航到用户池
  2. 转到";消息传送">
  3. 将用户池配置为将SES与电子邮件一起使用

CDK CLI版本:1.144.0框架版本:1.144.0Node.js版本:14操作系统:MacOS

我也遇到了同样的问题,我以为电子邮件地址已经验证,但事实并非如此,不幸的是,新的SES UI显示了"已验证";事实并非如此。

当您验证电子邮件地址时,如果您试图使用以下电子邮件地址,AWS将向该地址发送一封带有验证地址链接的电子邮件no-reply@yourdomain.com您需要设置一个";电子邮件接收";规则,以便AWS可以接收该地址的电子邮件并将其转发给SNS,然后SNS将其转发到您可以访问的电子邮件地址。

你可以在这里找到详细的说明

为了允许AWS代表您接收电子邮件,您还需要为您的域设置MX和TXT记录。

您可以使用CLI:检查电子邮件地址的验证状态

aws ses get-identity-verification-attributes --identities "user1@example.com" "user2@example.com"

获取身份验证属性

使用亚马逊SES 接收电子邮件

相关内容

  • 没有找到相关文章

最新更新