【问题标题】:Unable to receive email in AWS SES using SNS and Lambda无法使用 SNS 和 Lambda 在 AWS SES 中接收电子邮件
【发布时间】:2023-01-22 18:27:57
【问题描述】:

我正在尝试使用 SNS 和 Lambda 函数在 SES 中接收电子邮件。

我已将 example@gmail.com 验证为 SES 中的电子邮件地址,并创建了一个规则集,其中 example@gmail.com 作为收件人,SNS 主题作为操作。规则集已启用。

Lambda 订阅了 SNS 主题,当我在 AWS 控制台中发送关于该主题的测试消息时,我可以在 CloudWatch 中看到 Lambda 收到了消息。

但是,当我向 example@gmail.com 发送电子邮件时,Lambda 没有收到电子邮件。

有任何想法吗?

下面是一些相关的代码/配置:

  • SES 验证电子邮件
  • 接收规则操作
  • SNS 主题访问策略
{
  "Version": "2008-10-17",
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "__default_statement_ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "SNS:GetTopicAttributes",
        "SNS:SetTopicAttributes",
        "SNS:AddPermission",
        "SNS:RemovePermission",
        "SNS:DeleteTopic",
        "SNS:Subscribe",
        "SNS:ListSubscriptionsByTopic",
        "SNS:Publish",
        "SNS:Receive"
      ],
      "Resource": "arn:aws:sns:eu-west-1:my-account-id:EmailImagesStack-TopicBFC7AF6E-8ZD350QFNU12",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "my account id"
        }
      }
    }
  ]
}

【问题讨论】:

  • 为了让社区帮助你解决这个问题,请展示你的逻辑。
  • 不确定是否有那么多逻辑要显示,但我添加了一些相关内容。

标签: amazon-web-services amazon-ses


【解决方案1】:

在 SES 中接收邮件需要 here 中描述的一些先决条件。

  • 验证您的领域通过发布 DNS 记录来证明与 Amazon SES你拥有它。
  • 允许 Amazon SES 接收您域的电子邮件发布 MX 记录.
  • 亚马逊SES允许访问其他 AWS 资源以执行接收规则操作。

我猜您不拥有域gmail.com,因此 SES 无法为您接收来自example@gmail.com 的邮件。

【讨论】:

    【解决方案2】:

    对于 Gmail,重复电子邮件会导致它显示为促销电子邮件而不是主要电子邮件。

    在左侧导航栏中,只需单击“所有邮件” 在中心内容中,单击“主要”选项卡旁边的“促销”选项卡。

    它将显示从 AWS SNS 收到的所有电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 2017-01-30
      • 2020-11-25
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多