电子邮件地址未验证 (AWS SES)

Posted

技术标签:

【中文标题】电子邮件地址未验证 (AWS SES)【英文标题】:Email address is not verified (AWS SES) 【发布时间】:2016-09-28 10:32:23 【问题描述】:

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

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

两者都写着verified

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

电子邮件地址未经验证。以下身份未通过 签入地区 EU-WEST-1:myemail@outlook.com(请求 ID: 9fb78de1-2673-11e6-bbbc-5f819fabe4f4)

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

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

【问题讨论】:

【参考方案1】:

几分钟前我遇到了同样的问题,虽然这次我使用的是 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',

]);

现在可以了。

【讨论】:

【参考方案2】:

我验证了一个电子邮件地址,几天后我验证了我的域。当域完全验证(包括 DKIM)时,我在尝试向我域中的电子邮件地址发送电子邮件时仍然收到“电子邮件地址未验证”错误,该地址不是我的特定验证地址。

我删除了我已验证的电子邮件地址,并重新验证了它,它立即生效。然后我可以发送域范围的电子邮件,而以前 - 我只能发送到我之前验证过的电子邮件。

【讨论】:

【参考方案3】:

我遇到了这个问题。我验证了域和电子邮件,甚至验证了 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 用户!

【讨论】:

【参考方案4】:

确定

-您已提交您的案例请求以支持客户并向 24 解释确认的目的,也许他们会询问您有关您的应用程序的一些其他信息

【讨论】:

【参考方案5】:

确定

    您将电子邮件添加到 ses 并获得验证。 您为自己的帐户启用了生产模式。

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

@Matt Houser 已经回答了这些问题,但我添加了一张 2020 年 6 月的屏幕截图,解释了他所说的话。

【讨论】:

【参考方案8】:

如果电子邮件已经过验证并且您不在 SES 沙箱中,请检查您是否拥有适用于 SMTP 服务器的正确 AWS 区域。当我的 SMTP 凭据用于 email-smtp.us-east-1.amazonaws.com 服务器时,我试图连接到 email-smtp.eu-west-1.amazonaws.com

【讨论】:

不正确,我联系了 AWS 支持,他们说默认情况下,创建的所有帐户都处于沙盒模式。您需要联系 AWS 支持,提交新票证,只要您拥有有效域,他们就会移除沙盒环境。 是的,我说只要你脱离了 SES 沙箱,你仍然需要使用正确的 AWS 区域。 谢谢!这对我有用。出于某种原因,当我从沙盒中移出时服务器名称发生了变化,而我没有注意到。 @georgiecasey 假设我的 EC2 在新加坡。那我不能使用SES,因为我不在弗吉尼亚或爱尔兰? @Sarit 不,你仍然可以使用 SES,你只需要使用亚太地区。或者,当我发布我的答案时,你还是这样做了!【参考方案9】:

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

    仅发送来自经过验证的域和电子邮件地址,并且 仅发送经过验证的域和电子邮件地址

要发送给其他任何人,您必须联系 AWS 支持并提出请求,将您的账户从沙盒模式中移出:

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

【讨论】:

更多详情:docs.aws.amazon.com/ses/latest/DeveloperGuide/… 您还可以从 SES 控制台将目标电子邮件地址添加到已验证的电子邮件地址。然后它可以让您向该地址发送测试邮件。 猜想要求错误消息说明这些内容太多了 在我的情况下,一切都得到了验证,但仍然收到这个(令人困惑的)错误消息,直到我意识到请求是由错误的 IAM 用户发出的。也值得一试。 出于测试目的,请验证以下电子邮件:docs.aws.amazon.com/ses/latest/DeveloperGuide/... 您必须为要验证的域向 DNS 添加 TXT 记录, 或者使用发送到该地址的验证码一一添加地址。还要注意验证是每个区域,所以在验证太多之前选择你想要测试发送的区域,...hrm..... (^-^)

以上是关于电子邮件地址未验证 (AWS SES)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS SES 中验证电子邮件地址

Amazon SES 电子邮件地址未验证

电子邮件已验证,但我仍然无法使用 Amazon SES 发送电子邮件

Laravel 5.7:通过 AWS SES 的按需电子邮件通知将我的收件人电子邮件视为发件人电子邮件,并希望它是经过验证的地址

AWS-SES:如何设置发件人地址的显示名称

AWS SES PHP SDK 请求需要来自经过验证的域?