You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为每个Cognito用户生成已验证域名下的唯一SES邮箱地址?

实现用户专属AWS SES邮箱接收附件并处理的方案

一、为每个用户生成专属SES邮箱的实现方案

完全可以通过AWS SES结合其他AWS服务实现你的需求,具体步骤如下:

  • 前提准备:确保你已经完成SES域名(example.com)的验证,验证完成后,SES允许接收该域名下任意子邮箱地址的邮件,无需单独验证每个用户的专属邮箱。
  • 配置SES收件规则:创建一个SES收件规则集,设置规则将发送到@example.com域名下所有地址的邮件路由到指定S3存储桶,同时触发Lambda函数。规则可设置为匹配所有收件地址(*@example.com),确保所有用户的专属邮箱邮件都能被捕获。
  • 用户注册时生成专属邮箱:用户注册流程中,生成唯一字符串(比如UUID、随机哈希串)作为邮箱前缀,组合成{唯一串}@example.com,将这个邮箱地址与用户ID关联存入数据库(如DynamoDB、RDS)。
  • Lambda处理流程:当邮件存入S3后,Lambda被触发,执行以下操作:
    1. 从S3读取邮件原始内容,解析收件邮箱地址;
    2. 通过数据库查询找到该邮箱对应的用户;
    3. 提取邮件中的附件,将其存入业务专用的S3路径(可按用户ID分类存储);
    4. 处理完成后,删除S3中的原始邮件文件,或标记为已处理状态。

二、单个邮箱接收所有附件时的用户识别方案

如果选择用单个邮箱(比如attachments@example.com)接收所有用户的附件,可通过以下几种方式识别对应的用户:

  • 邮件主题/正文嵌入用户标识:要求用户在发送邮件时,在主题或正文中明确标注自己的用户ID、用户名等唯一标识。Lambda处理邮件时,解析主题或正文内容提取该标识,再关联到对应用户。
  • 利用SES加号别名特性:使用attachments+{用户ID}@example.com格式的邮箱地址,SES会自动忽略加号后的内容,将邮件投递到attachments@example.com。Lambda处理时,从收件邮箱地址中提取加号后的用户ID即可关联用户。
  • 自定义邮件头字段:让用户在发送邮件时添加自定义邮件头(如X-User-ID: 12345),Lambda解析邮件原始内容时读取该自定义头,获取用户标识。

注意事项

  • 确保S3存储桶、Lambda函数具备相应权限:Lambda需要有读取S3邮件文件、写入业务S3路径、访问数据库的权限;SES需要有写入目标S3桶的权限。
  • 注意SES的收件配额,避免超出限制影响邮件接收。
  • 处理邮件后及时清理原始邮件文件,避免占用不必要的S3存储资源。

内容的提问来源于stack exchange,提问作者Dylan w

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:45:23