无法使用 SNS 和 Lambda 在 AWS SES 中接收电子邮件

Unable to receive email in AWS SES using SNS and Lambda

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

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

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

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

有什么想法吗?

下面是一些相关的code/config:

{
  "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"
        }
      }
    }
  ]
}

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

  • Verify your domain with Amazon SES by publishing DNS records to prove that you own it.
  • Permit Amazon SES to receive email for your domain by publishing an MX record.
  • Give Amazon SES permission to access other AWS resources in order to execute receipt rule actions.

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