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

AWS SES发送邮件添加EmailTags后,如何在SNS通知中获取该标签?

解决SES EmailTags不显示在SNS通知中的问题

核心问题出在配置集的事件通知未开启标签包含,且发邮件时未关联配置集,按以下步骤修复:

1. 发邮件时关联配置集

修改发送参数,添加ConfigurationSetName字段,指定你已配置事件通知的配置集名称:

const params = {
  ConfigurationSetName: 'Your_Config_Set_Name', // 替换为你的配置集名称
  EmailTags: [{
    Name: 'emailType',
    Value: 'recoverPassword',
  }],
  Destination: {
    ToAddresses: process.env.NODE_ENV === 'production' ? [email] : [EmailSender.SANDBOX_EMAIL_TO],
  },
  // 其他参数保持不变...
};

2. 配置集事件通知开启标签包含

控制台操作

  • 进入SES控制台 → 左侧导航栏选择「配置集」
  • 选中目标配置集 → 切换到「事件目的地」标签
  • 编辑已关联SNS主题的事件目的地 → 勾选「Include email tags」选项并保存

API操作

调用UpdateConfigurationSetEventDestination接口,设置IncludeEmailTags为true:

// 示例AWS SDK调用代码
ses.updateConfigurationSetEventDestination({
  ConfigurationSetName: 'Your_Config_Set_Name',
  EventDestination: {
    Name: 'Your_SNS_Destination_Name',
    Enabled: true,
    IncludeEmailTags: true, // 关键配置
    SNSDestination: {
      TopicARN: 'arn:aws:sns:us-east-1:xxx:your-topic'
    },
    MatchingEventTypes: ['Delivery', 'Bounce', 'Complaint'] // 按需选择事件类型
  }
}, (err, data) => {
  // 处理回调
});

3. 验证结果

配置完成后,SNS通知的mail对象中会新增tags字段,格式如下:

"mail": {
  // 原有字段...
  "tags": {
    "emailType": ["recoverPassword"]
  }
}

常见坑提示

  • 不要使用SES全局事件通知,全局通知不支持携带EmailTags,必须通过配置集绑定事件目的地
  • 确保配置集名称、事件目的地的SNS主题ARN与代码中使用的完全一致
  • EmailTags的名称只能包含字母、数字、下划线和连字符,不能有空格或特殊符号

内容的提问来源于stack exchange,提问作者Carlos M. Rivera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:03:28