AWS SESv2向已有联系人列表新增主题报NotFoundException处理
解答
该需求完全可以通过SESv2 API实现,无需手动逐个修改存量联系人配置,操作步骤如下:
1. 先更新联系人列表的主题配置
你发送邮件时报NotFoundException的直接原因,是transactional_emails_3还没有被添加到联系人列表的合法主题列表中。你需要调用UpdateContactList接口(CLI对应命令为aws sesv2 update-contact-list),传入包含原有主题+新增主题的全量主题配置,将新主题的默认订阅状态设为OPT_IN即可。
CLI调用示例:
aws sesv2 update-contact-list \ --contact-list-name my_contact_list \ --topics '[ {"TopicName":"transactional_emails_1","DisplayName":"...","Description":"...","DefaultSubscriptionStatus":"OPT_IN"}, {"TopicName":"transactional_emails_2","DisplayName":"...","Description":"...","DefaultSubscriptionStatus":"OPT_IN"}, {"TopicName":"transactional_emails_3","DisplayName":"...","Description":"...","DefaultSubscriptionStatus":"OPT_IN"} ]'
注意:该接口的
--topics参数会全量替换联系人列表下的现有主题配置,必须同时传入原有两个主题的配置,否则原有主题会被删除。
2. 存量联系人无需单独更新配置
SES联系人列表的主题订阅本身就有两层优先级逻辑:
- 联系人显式设置过订阅状态的主题,存储在
TopicPreferences字段中,优先级最高 - 联系人未显式设置过订阅状态的主题,会自动继承联系人列表配置的默认订阅状态,对应接口返回的
TopicDefaultPreferences字段
你为新主题设置的默认状态是OPT_IN,所有未开启全局退订(UnsubscribeAll: false)的存量联系人,会自动继承该OPT_IN状态,不需要你逐个调用接口修改存量联系人数据。
验证
配置更新完成后,调用aws sesv2 get-contact-list --contact-list-name my_contact_list即可看到新增的主题,此时再发送关联transactional_emails_3主题的邮件就不会再报之前的不存在错误。
内容的提问来源于stack exchange,提问作者rippeltippel
相关产品推荐
相关产品推荐

