如何获取使用传输发送的电子邮件的 message_id?

How to get message_id of emails sent using transmission?

我们正在从 Mandrill 迁移到 SparkPost。我们认为 SparkPost 的 transmission 最接近 Mandrill 的 send-template 消息调用。

Mandrill 用每封电子邮件的 ids 和 statuses 列表响应这些电话。另一方面,SparkPost returns 单个 id 和摘要统计信息(发送的电子邮件数量和失败的电子邮件数量)。有什么方法可以让那些 ids 和 statuses 脱离传输响应或完全脱离?

您可以通过两种方式获取使用传输 API 发送的消息的消息 ID:

  • 查询 message events API,它允许您按收件人、模板 ID、活动 ID 和其他值进行过滤
  • 使用webhooks - 消息分批发送到您的端点,批次中的每个对象都包含消息 ID

您选择哪种方法取决于您的用例。它本质上是轮询(消息事件)与推送(webhooks)。发送传输时无法获取 ID,因为它们是异步发送的。

查询消息事件 API 虽然是一个可行的选项,但会不必要地使我们的简单解决方案复杂化。另一方面我们非常想使用Webhooks,但是不知道它们与哪个消息相关会很麻烦...

丢失的 link 是把我们自己的 id 放在 rcpt_meta 中。我们关心的大多数 webhook 确实包含 rcpt_meta,因此我们可以用 message_id 代替。

我也被这个问题困扰了.. 如果替换适用于 rcpt_meta,则使用 rcpt_meta 解决方案将是完美的,但事实并非如此。

因此,在发送活动的情况下,我无法在线指定所有收件人,但必须为每条消息进行一次 API 调用,这对 - 比如说 - 10/100k 收件人来说是不利的! 但是现在,所有 transmission_id 对于每个 SINGLE 收件人都是唯一的,所以我有丢失的密钥并且不再需要 rcpt_meta。

因此接收 webhook 时要使用的密钥组成:

transmission_id **AND** rcpt_to