域名和电子邮件地址身份对不同 SNS 主题有不同的反馈通知设置,但两者都转到为域名身份设置的同一主题上

0

【以下的问题经过翻译处理】 我有两个经过验证的身份:

使用这两个身份的原因是,我希望来自account@domain.com的电子邮件发送到一个SNS主题(账户主题)和该域名中的所有内容都会发送到另一个 SNS 主题(域名主题)。这是我对 但从account@domain.com发送的电子邮件通知却发送到与domain.com相同的SNS主题 的想法。

我知道这应该行得通,因为以下是相关信息: https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html

已验证的电子邮件地址身份设置会覆盖已验证的域名身份设置。

注意:我不在沙箱环境中。

故障排除

  • 确保每个身份都有不同的SNS反馈通知设置。
  • 创建了一个不同的电子邮件地址身份different-account@domain.com,并将Bonce、Complaint和Delivery通知设置为发送到与account@domain.com(帐户主题)相同的SNS主题 - 这按预期工作,通知发送到了正确的SNS主题(帐户主题)。
  • 确保在发送电子邮件时,字符大小写匹配,因为电子邮件身份是区分大小写的。
  • 删除了电子邮件地址身份(account@domain.com),等待15分钟,然后创建了一个具有相同account@domain.com地址的新身份 - 该身份立即被验证,并仍然具有以前的Bonce、Complaint和Delivery设置,这让我认为此帐户在后端从未被删除。
1 回答
0

【以下的回答经过翻译处理】 对于那些偶然遇到这个帖子并遇到相同问题的人,以下是解决方法。

问题的原因在于SES v2和v1 API验证电子邮件身份的方式不同。

一般来说,如果整个域已经通过SES验证,就不需要验证该域内特定的电子邮件地址。除非您想要更改某些电子邮件地址的操作配置。然而,如果要使用SES SMTP发送电子邮件时,需要使用v1 API验证电子邮件地址。

在您的Web控制台上,可能会显示为已验证,因为它使用了v2调用。但是,如果您使用CLI检查,您将看到状态为"失败或挂起"。这是非常奇怪的行为,对我来说几乎像是一个bug,但我不在AWS工作。

您可以通过运行以下命令来验证这一点:(用您的电子邮件身份替换user@example.com)

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

它会显示如下内容…

{
    "VerificationAttributes": {
        "user@example.com": {
            "VerificationStatus": "Pending"
        }
    }
}

这与控制台上显示的内容完全不同。

解决方案:

  1. 打开Amazon SES控制台。

  2. 在导航栏中的AWS区域选择器中,选择您的身份所在的区域。

  3. 从已验证身份列表中,选择电子邮件身份。然后,选择删除。

  4. 选择创建身份。然后,重新输入电子邮件身份详细信息。

  5. 然后运行此CLI命令(将[user@example.com] 注意:此命令将一个电子邮件地址添加到当前AWS区域的Amazon SES帐户的身份列表中,并尝试对其进行验证。执行此操作后,将向指定地址发送一封验证电子邮件。

  6. 点击您的邮箱中收到的验证链接,以验证此电子邮件身份,并通过运行验证属性命令在AWS控制台和AWS CLI中验证电子邮件地址。

aws ses get-identity-verification-attributes --identities user@example.com

结果应该类似:

{
    "VerificationAttributes": {
        "user@example.com": {
            "VerificationStatus": "Success"
        }
    }
}
  1. 一旦在控制台上验证状态显示为"已验证",并在CLI级别显示为"成功",您可以通过发送一封电子邮件来测试电子邮件身份,以验证它是否使用了SES上的正确配置。
profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则