我正在尝试将收到的电子邮件存储到 s3 存储桶中,我遵循了本教程和其他多个教程: https ://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-getting-started.html
我的 MX 记录设置为我的 mail.Domain,如下所示: Domain MX 10 mail.domain 当我将其更改为 Domain MX 10 inbound-smtp.us-east-1.amazonaws.com
我不再收到邮件,也没有存储电子邮件。
我不知道究竟缺少什么?请有人帮忙。
更新:设法遵循 Mlu 的答案,我现在离得到我的答案很近,唯一的问题是 AWS SES 不接受在我的域之外到达另一个外部域的“FROM”。
例如,A 向 B 发送电子邮件,B 将电子邮件转发(看起来更像是重定向)给 C,因此 C 看到他收到了来自 A 而不是 B 的消息,AWS SES 不喜欢并会给出此错误,例如:
554 消息被拒绝:电子邮件地址未经验证。以下身份未能通过 US-EAST-1 区域的检查:[email protected]、Jon Doe(回复 DATA 命令的结尾)。
首先是一些 DNS / 电子邮件背景 - 即使您的 DNS 中有多个example.com的 MX 记录,电子邮件也只能由列出的服务器之一接收。通常,发件人会联系偏好最低的那个,但在您的情况下,如果两者的优先级均为 10,则发件人服务器只会随机选择一个。
如果您既想在mail.example.com上接收电子邮件, 又想通过AWS SES将其存储在 S3 中,则必须明确地将其从一个发送到另一个。
我在我们的一个项目中进行了类似的设置,我们通过 Postfix(即我们的mail.example.com
always_bcc
)接收邮件,然后我们使用postfix 配置指令将其转发到 SES 。在这种情况下,example.com MX 记录仅指向mail.example.com,而不是 SES。但是,我们也有 ses.example.com 的记录,它是指向 inbound-smtp.us-east-1.amazonaws.com 的 MX记录。然后我们显然在 SES 中配置了域以将电子邮件存储到 S3。
always_bcc = [email protected]
ses.example.com
如果你愿意,你也可以反过来做——首先在 SES 上接收,然后从那里保存到 S3 并转发到你的其他邮件服务器。
最重要的是,您不能简单地列出 SES 和邮件服务器,并期望电子邮件会同时到达两者。您必须明确地接收一个并转发到另一个。
希望有帮助:)