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

SparkPost如何编辑邮件To/CC头?需在Amazon SES Raw邮件中复现

在Amazon SES Raw邮件中实现SparkPost式的To/CC收件人显示逻辑

要复现你提到的SparkPost效果——让CC收件人仅收到1封包含所有To地址的邮件,同时每个To收件人收到的邮件仅显示自身地址与CC地址,核心是拆分两组发送逻辑,避免将CC地址重复加入每次发送的收件人列表:

具体实现步骤

1. 单独发送给每个To收件人

对每个To地址(如person.1@email.com),构造Raw邮件时:

  • 邮件头To设为当前收件人的地址
  • 邮件头CC设为目标CC地址(仅用于显示,不加入实际投递列表)
  • 调用SES的SendRawEmail接口时,Destinations参数仅填入当前To地址

这样每个To收件人收到的邮件里只会看到自己和CC地址,且不会触发CC地址的额外投递。

2. 单次发送给CC收件人

单独构造一封Raw邮件:

  • 邮件头To设为所有To地址的拼接字符串(如person.1@email.com;person.2@email.com;person.3@email.com)
  • 邮件头CC设为目标CC地址
  • 调用SendRawEmail时,Destinations参数仅填入CC地址

这一步确保CC收件人只收到1封包含完整To列表的邮件。

代码示例(Python + Boto3)

import boto3
from email.mime.text import MIMEText
from email.utils import formataddr

# 初始化SES客户端
ses_client = boto3.client('ses', region_name='us-east-1')

# 配置邮件基础信息
from_addr = formataddr(('Your Name', 'you@fromyou.com'))
to_recipients = ['person.1@email.com', 'person.2@email.com', 'person.3@email.com']
cc_recipient = 'cc.1@email.com'
subject = 'To and CC'
body_text = 'This mail was sent to many while CCing cc.1@email.com.'

# 逐个发送给To收件人
for to_addr in to_recipients:
    msg = MIMEText(body_text)
    msg['From'] = from_addr
    msg['To'] = to_addr
    msg['CC'] = cc_recipient
    msg['Subject'] = subject

    ses_client.send_raw_email(
        Source=from_addr,
        Destinations=[to_addr],
        RawMessage={'Data': msg.as_string()}
    )

# 发送给CC收件人
cc_msg = MIMEText(body_text)
cc_msg['From'] = from_addr
cc_msg['To'] = ';'.join(to_recipients)
cc_msg['CC'] = cc_recipient
cc_msg['Subject'] = subject

ses_client.send_raw_email(
    Source=from_addr,
    Destinations=[cc_recipient],
    RawMessage={'Data': cc_msg.as_string()}
)

关键逻辑说明

  • 邮件头中的CC仅用于邮件显示,SES实际投递只依据Destinations参数,因此不会因为头信息触发额外投递
  • 拆分发送后,总共执行n+1次发送操作(n为To收件人数),但CC收件人仅收到1次邮件,完全匹配需求

内容的提问来源于stack exchange,提问作者Yash Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:32:46