我不能在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控制台中执行等效操作时,它运行良好。
- 导航到用户池
- 转到";消息传送">
- 将用户池配置为将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 接收电子邮件