问题类似到这个;
通过 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。
因此您可以做的是:
创建一个SES 规则您的
[email protected]
地址。这将捕获 的所有电子邮件receiving-stuff+{something}@example.com
。- 首先行动可以是你的拉姆达或将电子邮件存储到S3。
- 第二行动是停止规则集- 停止转发电子邮件很
receiving-stuff@
重要工作邮件。
下一个SES 规则是整个域的原始 WorkMail 规则。
有了这些,任何电子邮件都receiving-stuff+{something}@
将被 Lambda 拦截,并且所有其他电子邮件将直接进入 WorkMail。
最后你的配置应该与此类似(我使用了lambda@...
而不是receiving-stuff@...
):
我还可以验证我的ses-inbound-lambda
是否被调用:
def lambda_handler(event, context):
print(event['Records'][0]['ses']['receipt']['recipients'][0])
打印出:lambda+some-extra-text@{example}.com
还可以验证工作邮件仍然适用于其他用户:
希望有帮助:)