我想使用亚马逊的简单电子邮件服务发送电子邮件。

我验证了我的域名以及我想发送的电子邮件地址。

两者都显示已核实。

现在,当我从AWS控制台使用发送测试电子邮件向myemail@outlook.com发送测试电子邮件时,我只得到错误消息:

电子邮件地址未验证。下面的标识失败了 check in region EU-WEST-1: myemail@outlook.com(请求ID: 9 fb78de1 - 2673 - 11 - e6 bbbc - 5 - f819fabe4f4)

现在它让我震惊,因为它说myemail@outlook.com没有经过验证,但我试图从admin@mydomain.example发送。发送测试电子邮件对话框甚至强迫您使用已经注册的电子邮件。

如何解决这个问题?我错过什么了吗?


当前回答

我有这个问题。我验证了域名和电子邮件,甚至DKIM设置也得到了验证。 但还是得到了这样的信息:

Email address is not verified. The following identities failed the check in region {aws_region}: {email}

我添加了SourceArn作为sendEmail的参数,然后得到这条消息:

User `arn:aws:iam::{account_id}:user/{username}' is not authorized to perform `ses:SendEmail' on resource `arn:aws:ses:{aws_region:{account_id}:identity/{email}'

2天后,我发现我使用了错误的IAM用户!

其他回答

当你的SES帐户处于“沙盒”模式时,你可以:

只发送从验证的域名和电子邮件地址,和 只发送到经过验证的域名和电子邮件地址

为了发送给其他人,您必须通过联系AWS支持并请求将您的帐户移出沙盒模式:

https://docs.aws.amazon.com/console/ses/sandbox

在我的情况下,我需要在失败的地区再次验证电子邮件。您可以尝试更改右上角的区域,然后再次单击“验证新电子邮件地址”

几分钟前我遇到了同样的问题,尽管这次我使用的是PHP SDK。

我必须再次检查SesClient实例化代码。

$SesClient = new SesClient([
    'profile' => 'default',
    'version' => '2010-12-01',
    'region'  => 'us-west-2',

]);

我发现实例化代码中的区域是us-west-2。 我回到我的控制台,发现SES帐户被沙盒在us-east-2(俄亥俄州)。

我在实例化代码中实现了这样的更改

$SesClient = new SesClient([
    'profile' => 'default',
    'version' => '2010-12-01',
    'region'  => 'us-east-2',

]);

现在起作用了。

@马特·豪瑟已经回答了问题,但我添加了一张2020年6月的截图,解释了他说的话。

对我来说,问题是我错配了案例。 验证的电子邮件和发送的电子邮件必须完全匹配。

test@gmail.com vs Test@gmail.com