【问题标题】:Adding data to a MailGun mass email将数据添加到 MailGun 群发电子邮件
【发布时间】:2019-09-26 19:42:05
【问题描述】:

我正在通过 Mailgun 发送几百封电子邮件,如下所示:

// Send to Mailgun
$mailgunResult = $mgClient->sendMessage($domain, array(
  'from'    => $fromEmail,
  'to'      => $toListString,
  'subject' => $emailSubject,
  'text'    => $textEmail,
  'html'    => $htmlEmail,
  'recipient-variables' => $recipientJSON
));

这很好用,但现在我想将自定义数据附加到每封电子邮件,例如我的每封电子邮件的 ID 等。文档显示了如何将 json 数据添加到单个电子邮件,但我不知道如何让 Mailgun 将我的数据列表与每封外发电子邮件相匹配,就像它对收件人变量所做的那样。

有人做过吗?我使用 Mailgun 的票让我指向了我已经引用过的文档。

【问题讨论】:

  • 所以,澄清一下,您希望能够通过根据收件人更改正文来个性化每封电子邮件?
  • 另外,您能否编辑您的问题以提供指向您提到的文档的链接?
  • 我提到的文档在这里:documentation.mailgun.com/… 不,我不需要编辑电子邮件正文。 Mailgun 想要一个带有数据 json 的“X-Mailgun-Variables”标头。然后,当事件发生时,比如送货,他们会将这些数据发回给我。我试过了,但数据没有发回给我: $mailgunResult = $mgClient->sendMessage($domain, array( 'h:X-Mailgun-Variables' => $dataJSON, 'from' => $ fromEmail, 'to' => $toListString 等));
  • 所以您想为每封电子邮件发送不同的X-Mailgun-Variables 标头?使用 Mailgun 的 API 似乎无法做到这一点。 X-Mailgun-Variables 看起来像是按批次发送的,此外,它看起来像是作为标题发送给每个收件人的。如果您想向每个收件人发送唯一的数据,看起来您必须通过 recipient variables 执行此操作,但这些只能替换到邮件正文中。

标签: php mailgun


【解决方案1】:

您可以在自定义变量中使用 Mailgun 的模板标签。我正在使用它通过我的网站唯一 ID 来跟踪收件人。在您的 API 后负载中,使用 v: 样式添加变量,然后使用模板 (%recipient.value%) 设置该变量的值。

JSON 负载示例:

{
    'v:Recipient-Id': '%recipient.id%'
    'recipient-variables:': { 'email@example.com': {'id': '123'}}
}

然后在 webhooks 有效负载中,您将看到如下变量:

'Recipient-Id': '123'

我从 Mailgun 网站上的有用博客文章中发现了这一点: http://blog.mailgun.com/closing-the-loop-between-your-customer-data-and-your-email-data/

【讨论】:

  • 非常感谢!这有帮助
  • 除了地址 (John Doe <jdoe@example.com>) 之外还指定收件人电子邮件以及在测试模式下发送消息时,我还没有(还没有?)能够使这个技巧起作用。因此,如果有人因为 mailgun 没有用它们的值替换变量而感到绝望,请尝试仅使用收件人地址并发送非测试模式消息,看看它是否修复了它。顺便说一句,非常感谢!
  • 是的,文档似乎说您必须只使用电子邮件作为变量的键。
  • @RB_ 谢谢!我一直在使用 Mailgun 的 测试模式,但无法弄清楚为什么我的日志显示 {"user-variables": {"Recipient-Id": "%recipient.id"}} 而不是预期的替换 {"Recipient-ID": "123"}。关闭测试模式修复了它! (奇怪。)
【解决方案2】:

我不确定我是否理解正确,因为你说你已经看过文档了。

对我来说,确实看起来像在文档中回答了这个问题。 https://documentation.mailgun.com/user_manual.html#attaching-data-to-messages:

将数据附加到消息

发送时,您可以通过传递自定义将数据附加到您的消息中 数据到 API 或 SMTP 端点。数据将表示为 电子邮件中的标题,X-Mailgun-Variables。数据格式为 JSON 并包含在与电子邮件相关的任何 webhook 事件中 包含自定义数据。可以包括几个这样的标题,并且 它们的值将被合并。

示例:

X-Mailgun-Variables: {"first_name": "John", "last_name": "Smith"}
X-Mailgun-Variables: {"my_message_id": 123}

要将此标头添加到您的消息中:

API:传递以下参数,“v:my-custom-data” => “{“my_message_id”: 123}”

SMTP:将以下标头添加到您的电子邮件中,“X-Mailgun-Variables: {“my_message_id”: 123}”

注意

“X-Mailgun-Variables” 标头的值应该是有效的 JSON 字符串,否则 Mailgun 将无法解析它。如果你的 X-Mailgun-Variables 标头超过 998 个字符,您应该使用 折叠以将变量分布在多行中。

当您说“您的 id”时,您并不是指 Mailgun 所说的“标签”或“活动”,对吧?

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2018-12-05
    相关资源
    最近更新 更多