使用没有 MX 记录的 AWS SES 接收电子邮件

Receive email with AWS SES without MX record

我想处理特定电子邮件的传入电子邮件。在 aws 文档中它说

虽然您不需要发布 MX 记录来通过 Amazon SES 接收邮件,但如果您不发布记录,Amazon SES 将仅在您明确将邮件路由到 Amazon SES 时接收您的域的邮件。

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-mx-record.html

如何将电子邮件明确路由到 SES?

来自: https://aws.amazon.com/blogs/aws/new-receive-and-process-incoming-email-with-amazon-ses/

现在您需要将收到的电子邮件路由到 SES 进行处理。您在这里有两个选择。您可以将域的 MX(邮件交换)记录设置为指向您要处理传入电子邮件的区域中的 SES SMTP 端点。或者,您可以配置现有的邮件处理系统以将邮件转发到端点。

使用 AWS SES 的入站端点之一:

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html#region-select

例如对于 US-EAST-1,入站端点是 inbound-smtp.us-east-1.amazonaws.com。对于仅接收,您不使用 SMTP 端点。使用或不使用 MX 记录的过程几乎相同:在某处(在您的 DNS 或邮件处理系统中)您必须指向 SES 入站端点。

例如,我的 MX 记录指向 Google 应用程序,但使用 'Hosts' 和 'Routing'(在 Google Apps/Gmail 选项中)我设法仅将一个收件人转发给 SES。因此,我的域收到的每封电子邮件都像往常一样发送给 Gmail 收件人,除了一封 special_recipient@mydomain.com,我将其转发给 SES(后者依次发送至 SNS,然后发送至 SQS)。

经过数小时的研究和尝试让 SES 在不使用 MX 记录的情况下接收电子邮件的尝试失败 (已通过 gSuite / Google 应用程序设置了额外的路由), 这是我关于如何解决这个问题的最佳建议。

精简版

创建一个子域并在插入 TXT 验证记录后将其 MX 记录指向 SES。
创建必要的规则集以接收和保存来自 any@sub.domain.com 的电子邮件后,您现在可以让 SES 接收从您拥有的任何电子邮件地址发送电子邮件(即使未通过 SES 验证) 只需将其电子邮件转发到启用 SES 的子域电子邮件地址即可。


长版

不幸的是,它仍然需要 MX 记录,但请检查一下...

您可以在您的主域上创建一个自定义子域并将其命名为任何名称。就我而言,我称之为 ses.mydomain.com 接下来,我通过 Domains link 将我新创建的子域添加到 SES。

将其作为域添加到 SES 后,会立即出现一个弹出窗口 window,显示所需的 TXT verification recordMX mail record.

将这两条 DNS 记录分配到我的子域后不久,子域通过 规则集 !

设置了一些快速规则后验证并能够接收电子邮件

这是很酷的部分 - 您仍然可以让 SES 从您有权访问的 任何 电子邮件地址接收电子邮件。

你会怎么问?

只需在您要发送到 SES 的电子邮件地址上设置转发器,将其转发到启用 SES 的子域电子邮件地址。

含义 - 如果 SES 能够接收来自 someone@ses.example.com 的电子邮件,但您希望它实际接收来自 someone-else@example.com 的电子邮件,那么您需要做的就是转发 someone-else@example.comsomeone@ses.example.com!


请记住,您仍然需要创建必要的规则来接收电子邮件。 See this AWS Blog Post for more information.