我正在尝试将收到的电子邮件存储到 S3 存储桶中,我遵循了本教程和其他多个教程: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-getting-started.html
我的 MX 记录设置为我的 mail.Domain,如下所示:域 MX 10 mail.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 区域内未能通过检查:[电子邮件保护],Jon Doe(回复 DATA 命令结束)。
答案1
首先了解一些 DNS / 电子邮件背景知识 - 即使您有多个 MX 记录示例.com在您的 DNS 中,电子邮件仅由其中一台服务器列出的。通常,发件人会联系最低偏爱但就你的情况而言,如果两者都有优先级 10发送服务器将随机选择一个。
如果您希望同时在自己的mail.example.com 和通过亚马逊AWS官方博客要将其存储在 S3 中,您必须从一个喂到另一个明确地。
我在我们的一个项目中有类似的设置,我们通过 Postfix 接收邮件(这是我们的mail.example.com),然后我们使用always_bcc
postfix 配置指令。
在这种情况下示例.comMX 记录仅指向mail.example.com,而不是 SES。但我们也有记录ses.example.com是指向入站-smtp.us-east-1.amazonaws.com。然后我们显然在 SES 中已经将域配置为将电子邮件存储到 S3。always_bcc = [email protected]
ses.example.com
如果您愿意,您也可以反过来做 - 先在 SES 上接收,然后从那里保存到 S3 并转发到您的其他邮件服务器。
底线是,您不能简单地列出 SES 和邮件服务器,并期望电子邮件会同时到达这两个服务器。您必须明确地在一个服务器上接收邮件,然后转发到另一个服务器。
希望有帮助:)