AWS SES - 在 S3 中存储发送到`testing@my-domain.com` 的电子邮件,在 iCloud 中接收其他电子邮件到`me@my-domain.com`?

AWS SES - Store email sent to`testing@my-domain.com` in S3, receive other emails to `me@my-domain.com` in iCloud?

简短描述

我正在尝试弄清楚如何使用 AWS SES 接收电子邮件并将其存储在 S3 存储桶中,但仅限于域的特定电子邮件地址。我希望由我的电子邮件提供商 iCloud(或任何其他提供商)处理的其余电子邮件。

为什么

我正在开发一个 CDK 结构,为了测试这个结构,我需要向特定的电子邮件地址(例如 testing@my-domain.com)接收一封电子邮件。我还需要阅读这封电子邮件的内容以完成测试,但是我拥有的域已经设置为接收发送到该域内其他电子邮件地址的电子邮件(例如 contact@my-domain.comme@my-domain.com ).目前,这个域名是通过 NameCheap(任意 DNS 注册商)注册的,电子邮件客户端是通过 iCloud 设置的。

问题

我发现的问题是,为了接收来自 AWS SES 的电子邮件,我需要在 NameCheap 上为我的域配置 MX 记录以指向 AWS SES。如果我这样做,那么我将无法再接收来自我域中任何其他电子邮件地址的电子邮件,例如 iCloud(或任何其他电子邮件提供商)上的 contact@my-domain.comme@my-domain.com,因为电子邮件只能发送至一台基于最高优先级 MX 记录的服务器。

本质上是我想要的逻辑的伪代码示例:

if email_address == 'testing@my-domain.com' then
    save_to_s3_bucket()
else
    default_send_to_icloud()

调查解决方案

  1. 购买第二个域名

    我可以做的一件事是在 iCloud 中应用一条规则,将 testing@my-domain.com 电子邮件中的所有电子邮件转发到任何其他地址。唯一可行的方法是,如果我购买了第二个域并将电子邮件转发到该域中的地址。在这里我可以设置没有冲突的 MX 记录,因为这个域将仅用于此目的,并保存到 S3 存储桶。

    我不喜欢这种方法,因为现在我必须购买 12 美元/年的经常性费用,用于接收测试电子邮件的单一目的。对于我的问题,这似乎是一个矫枉过正的解决方案。

  2. 发送电子邮件到 S3 存储桶端点

    这是一个假想的解决方案(据我所知),但想表明我已经研究了这条路线。这个想法是,如果 AWS S3 提供一项服务,他们控制一个域,任何人都可以向其发送电子邮件,然后您可以配置您的 S3 存储桶以接受来自某些 REGEX 域字符串的电子邮件,并允许将这些作为文件。 (具体是什么流程我没有具体说,只是给个大概的概念)

    这不起作用,因为这不是 S3 的当前产品(但如果他们添加它会很酷)。

  3. 转发到 iCloud 最后一个选项感觉像是一个配置噩梦,但我们的想法是通过将域的 MX 记录设置为指向那里来配置 AWS SES 以接收所有电子邮件。然后我们可以应用基于规则的过滤器将我们没有保存到 S3 的电子邮件转发到 iCloud 服务器。

    这种做法有不少问号,比如邮件会不会看起来是从SES发过来的?我如何通过 iCloud 回复电子邮件?需要调查 SES 的延迟、丢失的电子邮件等。

    我真的不想这样做,因为它感觉像是一场配置噩梦。我还没有这样做,所以如果它比我想象的更简单,请告诉我。

目前我找到的只有这些解决方案,还有其他解决方案吗?我很难相信我是唯一遇到过此类问题的人,但谷歌搜索此类解决方案非常困难。

经过一番搜索,我找到了使用原始域的子域的解决方案。如果我这样做,那么我可以维护我的根域的原始 MX 记录并接收发送到我的 iCloud(或任何其他提供商)的电子邮件。接下来我可以将 MX 记录添加到子域,所有电子邮件现在都将定向到 AWS SES。

Type Host Value Priority TTL
MX my-domain.com mx04.mail.icloud.com 10 Automatic
MX my-domain.com mx07.mail.icloud.com 10 Automatic
MX testing.my-domain.com inbound-smtp.us-east-1.amazonaws.com 10 Automatic

这样做的好处是子域在大多数(所有?)DNS 注册商中都是免费的。

AWS SES MX Configuration Docs

现在来自 me@my-domain.comcontact@my-domain.com 等的所有电子邮件都将转到 iCloud。所有发送至 anything@testing.my-domain.comanother@testing.my-domain.com 等的电子邮件都将发送至 AWS。