python - 无需通过 SparkPost API 使用密件抄送即可将单个电子邮件发送给多个收件人
问题描述
我们的 Django 应用程序使用 SparkPost 作为电子邮件提供商。我们正在实施的一项新功能应该允许用户创建自己的组织电子邮件并将其发送给他们想要的任何人。现在,这些电子邮件应该作为单独的电子邮件接收,而不是多个收件人(“收件人”),这样用户就无法看到彼此的地址。
我已经使用SparkPost 传输 API运行了一些测试。这是您发送电子邮件的方式:
sp = SparkPost(API_KEY)
response = sp.transmissions.send(recipients=emails, html=body, from_email=sender, subject=self.subject)
emails
字符串文字列表在哪里。
在除一个之外的所有测试用例中,我确实收到了一封带有单个收件人的电子邮件,就像我之后一样。但在一种情况下,电子邮件有多个“收件人”电子邮件,您可以看到彼此的电子邮件地址。我在代码中完全没有改变,这只是发生了。
除了为每个收件人发送单独的传输之外,我还有什么办法可以做到这一点?如果涉及到这一点,我会担心性能:
sp = SparkPost(API_KEY)
for email in emails:
sp.transmissions.send(recipients=email, html=body, from_email=sender, subject=self.subject)
解决方案
是的,最好在单个 REST 调用中执行此操作。
默认情况下,SparkPost REST 注入是密件抄送,并将向每个收件人发送单独的电子邮件。正如您所看到的,您也可以具有典型的“CC”行为,但您需要CC
使用您希望其他人看到的地址来设置标题值。
因此,在包含 CC 的示例中,您必须在 REST 调用中有类似的内容:
"headers": {
"CC": "cc@thatperson.com"
},
抄送示例:
{
"recipients": [
{
"address": {
"email": "to@thisperson.com"
}
},
{
"address": {
"email": "cc@thatperson.com",
"header_to": "to@thisperson.com"
}
}
],
"content": {
"from": "you@fromyou.com",
"headers": {
"CC": "cc@thatperson.com"
},
"subject": "To and CC",
"text": "This mail was sent to to@thisperson.com while CCing cc@thatperson.com."
}
}
"recipients": [
{
"address": {
"email": "to@thisperson.com"
}
},
{
"address": {
"email": "bcc@thatperson.com",
"header_to": "to@thisperson.com"
}
}
],
"content": {
"from": "you@fromyou.com"
"subject": "To and BCC",
"text": "This mail was sent To to@thisperson.com while BCCing an unnamed recipient. Sneaky."
}
}
在您的用例中,您不想"header_to": "to@thisperson.com"
为任何收件人设置。
推荐阅读
- r - 在 R 中启动后续操作
- javascript - 异步函数不等待等待函数结束
- javascript - 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件。摩卡酵素 + webpack
- python - 二进制共享库到字符串并返回
- php - PHP COUNT_RECURSIVE 为关联(分层)数组提供错误输出
- python - Kivy 中 ScrollView GridLayout 中自定义 Widget 的重叠
- css - 如何正确处理左边距?
- java - ExceptionInInitializerError exception when executing the built executable jar
- c++ - 如何在 C++ 中生成向量的不同排列?
- computational-geometry - 在 CGAL 中转换坐标值