AWS SES 中的收件人地址通配符支持

AWS SES 中的收件人地址通配符支持

问题类似到这个

通过 SES 接收电子邮件时,生成接收规则时有一些基本的通配符支持会很有帮助。

我们有一个依赖于动态标签的用例,例如:user+{nonce}-{app}@domain.com

地址的 {app} 组件用于路由到不同的应用程序进行处理。

来自 AWS 论坛的这个问题 3 年后仍未得到答复,因此请在这里询问,看看是否有变化或有解决方法。

基本上,我需要创建许多(可能数千个)地址,以便{someEntityId}@example.com用户可以将内容发送到这些地址(SES 在这里的限制很低,所以这不是一个选择)

或者

如果receiving-stuff-{someEntityIdWildcardHere}@example.com我收到电子邮件[电子邮件保护]我知道要做什么。

额外信息:另一个选项是someEntityId从电子邮件发件人那里获取(这已经完成了),但它有其他问题,例如必须为每个实体创建一封电子邮件。我还使用 WorkMail,因此我无法设置域级接收规则,因为 WorkMail 将停止工作(我见过这种情况)。

答案1

SES 规则支持通常加号, 例如用户+某物@example.com

因此您可以做的是:

  1. 创建一个SES 规则您的[email protected]地址。这将捕获 的所有电子邮件receiving-stuff+{something}@example.com

    • 首先行动可以是你的拉姆达或将电子邮件存储到S3
    • 第二行动停止规则集- 停止转发电子邮件很receiving-stuff@重要工作邮件
  2. 下一个SES 规则是整个域的原始 WorkMail 规则。

有了这些,任何电子邮件都receiving-stuff+{something}@将被 Lambda 拦截,并且所有其他电子邮件将直接进入 WorkMail。

最后你的配置应该与此类似(我使用了lambda@...而不是receiving-stuff@...):

SES 规则集

我还可以验证我的ses-inbound-lambda是否被调用:

def lambda_handler(event, context):
    print(event['Records'][0]['ses']['receipt']['recipients'][0])

打印出:lambda+some-extra-text@{example}.com

还可以验证工作邮件仍然适用于其他用户:

亚马逊 WorkMail

希望有帮助:)

相关内容