AWS SESv2批量发邮件时如何自动调用联系人属性填充模板?
解决SES批量邮件自动填充联系人属性的方案
针对你遇到的问题——用list_contacts拿不到联系人的AttributesData,逐个调用get_contact又太慢的情况,给你几个实用的解决思路:
1. 用SES营销活动(Campaign)替代手动批量发送
这是最省心的方案,SES的营销活动可以直接关联你的联系人列表,自动读取每个联系人的属性来填充模板:
- 先在SES控制台创建好你的邮件模板(保留
{{Name}}变量) - 创建新营销活动,选择目标联系人列表,并指定筛选条件(比如仅"Announcements"主题的订阅用户)
- 活动运行时,SES会自动拉取符合条件的联系人
AttributesData,把{{Name}}替换为实际名称,完全不需要手动处理数据和调用API
2. 批量导出联系人列表到S3,再读取数据发送
如果必须用send_bulk_email API手动发送,可以先批量导出联系人数据:
- 通过SES控制台或
export_contactsAPI,把目标联系人列表导出到S3桶,导出文件会包含所有联系人的EmailAddress和AttributesData - 从S3下载导出的CSV/JSON文件,解析出每个联系人的邮箱和Name属性
- 将数据整理成
send_bulk_email要求的BulkEmailEntries格式,一次性批量发送,效率远高于逐个调用get_contact
3. 异步批量调用get_contact(备选方案)
如果上面两种方式不适用,可以用多线程/异步请求批量调用get_contact来减少耗时:
- 把
list_contacts返回的邮箱列表分成若干批次 - 用Python的
concurrent.futures.ThreadPoolExecutor或异步库同时发起多个请求,并行获取联系人属性
代码示例(多线程批量获取属性)
import boto3 import json from concurrent.futures import ThreadPoolExecutor ses_client = boto3.client('sesv2') def get_contact_attrs(email): try: resp = ses_client.get_contact(ContactListName='myusers', EmailAddress=email) attrs = json.loads(resp['AttributesData']) return {'email': email, 'name': attrs.get('Name', 'Unknown')} except Exception as e: print(f"获取{email}属性失败: {e}") return {'email': email, 'name': 'Unknown'} # 从list_contacts获取的目标邮箱列表 email_list = ['john@gmail.com', 'jane@gmail.com', ...] # 批量并行获取属性 with ThreadPoolExecutor(max_workers=50) as executor: contact_data = list(executor.map(get_contact_attrs, email_list)) # 构造批量邮件参数 bulk_entries = [] for data in contact_data: bulk_entries.append({ 'Destination': {'ToAddresses': [data['email']]}, 'ReplacementEmailContent': { 'ReplacementTemplate': { 'ReplacementTemplateData': json.dumps({"Name": data['name']}) } } }) # 发送批量邮件 response = ses_client.send_bulk_email( FromEmailAddress='no-reply@mysite.xyz', ReplyToAddresses=['feedback@mysite.xyz'], DefaultContent={ 'Template': { 'TemplateName': 'mytemplate', 'TemplateData': json.dumps({"Name": "Unknown"}) } }, BulkEmailEntries=bulk_entries )
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

