【问题标题】:Send individual emails to multiple recipients without using BCC with the SparkPost API无需通过 SparkPost API 使用密件抄送即可将单个电子邮件发送给多个收件人
【发布时间】:2020-06-25 07:16:48
【问题描述】:

我们的 Django 应用程序使用 SparkPost 作为电子邮件提供商。我们正在实施的一项新功能应该允许用户创建自己的组织电子邮件并将其发送给他们想要的任何人。现在,这些电子邮件应该单独接收,而不是多个收件人(“收件人”),这样用户就看不到彼此的地址。

我已经用SparkPost transmissions 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)

【问题讨论】:

  • 您最终是使用@Yepher 的密件抄送示例解决了问题,还是您错误地在recipients 参数中添加了抄送数据?
  • @DrNerdfighter 我最终没有使用密件抄送。我使用以下格式传递了recipients[{'address': {'email': email}} for email in emails]

标签: python django email sparkpost


【解决方案1】:

是的,最好在单个 REST 调用中执行此操作。

默认情况下,SparkPost REST 注入是密件抄送,并将向每个收件人发送单独的电子邮件。如您所见,您也可以具有典型的“CC”行为,但您需要将 CC 标头值设置为您希望其他人看到的地址。

因此,在包含 CC 的示例中,您必须在 REST 调用中有类似的内容:

"headers": {
    "CC": "cc@thatperson.com"
},

CC Example

{
  "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."
  }
}

BCC Example

"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"

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 2016-08-11
    • 2015-12-19
    • 2012-07-22
    • 2018-11-19
    • 2011-02-01
    • 2013-08-15
    • 2012-12-23
    • 2017-10-01
    相关资源
    最近更新 更多