将数据添加到MailGun群发电子邮件

时间:2015-08-06 21:19:33

标签: php mailgun

我通过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的门票让我指出了我已经引用过的文档。

2 个答案:

答案 0 :(得分:6)

您可以在自定义变量中使用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/

答案 1 :(得分:0)

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

对我而言, 看起来像是在文档中得到了解答。 https://documentation.mailgun.com/user_manual.html#attaching-data-to-messages

  

将数据附加到消息

     

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

     

实施例

<?php

header('Content-Type: text/html; charset=UTF-8');
include("db.php"); //just the database connection
session_start();
?>

<html>
    <head>
        <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    </head>
    <body>
</html>
<?php
    $abfrage= mysql_query("SELECT * FROM user ORDER BY Name desc");
    //$ergebnis = mysql_query($abfrage) or die( mysql_error() ); 
    echo "<table>";
    echo"<caption>Mitglieder<br></caption>";
    echo"<table border=\"1\" style=\"width:300px\">";
    echo "<th>Name</th>
          <th>Prename</th>
          <th>Role</th>";

    while($row = mysql_fetch_object($abfrage)) {

        echo "<tr>";
        echo "<td align=center>",$row->Name,"</td>";
        echo "<td align=center>",$row->Prename,"</td>";
        echo "<td align=center><select><option value=",$row->Role,">",$row->Role,"</option></select></td>";
        //Here is the Problem

        echo "</tr>";
    }
    echo "</table>";
?>
     

要在邮件中添加此标头:

     

API:传递以下参数X-Mailgun-Variables: {"first_name": "John", "last_name": "Smith"} X-Mailgun-Variables: {"my_message_id": 123}

     

SMTP:将以下标题添加到您的电子邮箱“v:my-custom-data” => “{“my_message_id”: 123}”

     

注意

     

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

当你说&#34;你的身份&#34;时,你并不是指Mailgun所说的&#34;标签&#34;或&#34;广告系列&#34;,对吧?

HTH