Mailgun轨道独特开启

时间:2015-11-26 16:35:41

标签: php yii2 mailgun

刚刚通过API测试了mailgun。

一切都很好。

简短:如何通过网络抓访跟踪特定邮件的唯一展开次数。

(不一定相关,但对于completness我使用Yii2 PHP框架 - 没有扩展,只是从mailgun快速启动php代码)

发送电子邮件并跟踪开放事件。 但我发现它跟踪同一邮件的每一次打开。

那么跟踪特定邮件是否被打开的最佳方式是什么(通过webhook)。哪些数据最适合识别特定电子邮件,或者在发送时更好地使用“自定义变量”?

2 个答案:

答案 0 :(得分:3)

好的我认为我有一个可接受的工作流程 - 通过“自定义变量”。

您可以为每个收件人定义不同的值,这样您就可以发送唯一ID,然后在打开的事件中跟踪该ID。只需为每个发件人保存一个或更新开放时间。

我的发送代码(PHP):

$result = $mg->sendMessage($domain, array(
            'from'    => 'foo@bar.de>',
            'to'      => 'recipient1@mail.de, recipient2@mail.de',
            'subject' => 'Hello %recipient.first% from %recipient.group%!',
            'text'    => 'Test of Mailgun',
            'html'    => '<html>It is so simple to send a message.<br/>Right?</html>',
            'o:tag'   => array('test'),
            'o:tracking-opens' => 'yes',
            'v:my-custom-data' => '{"my_message_id": %recipient.id%}',
            'recipient-variables' => '{
                "recipient1@mail.de": {"first":"Recipient1", "group":"group1", "id":1},
                "recipient2@mail.de": {"first":"Recipient2", "group":"group2", "id":2}
            }'
));

然后,在每个事件中,您都会获得具有唯一ID的响应。

打开第一封电子邮件的活动:

"user-variables": {
    "my-custom-data": "{\"my_message_id\": 1}"
},

打开第二封电子邮件的活动:

"user-variables": {
    "my-custom-data": "{\"my_message_id\": 2}"
},

答案 1 :(得分:1)

跟踪电子邮件空缺的最佳方式是所谓的&#34;像素&#34;。 首先,您需要在电子邮件中注入像素。

例如:

    public function insertPixel($user,$template)
        {
            $output = $template.'<img src="'.Yii::app()->homeUrl.'/mailing/pixel/track?id='.$this->campaign->id.'&user='.$user.'&rand='.rand().'">';

            return $output;
        }

哪个指向php端点。在那个端点,你会得到开口并随心所欲。

例如:

public function actionTrack()
{
    if (isset($_GET["id"])&&isset($_GET["user"])){
            Yii::app()->db->createCommand("UPDATE mailing_campaigns SET open_count = open_count + 1 WHERE id=:id")
                ->bindParam(":id",$_GET["id"],PDO::PARAM_INT)
                ->execute();
    }
    header('Content-Type: image/gif');
    echo "\x47\x49\x46\x38\x37\x61\x1\x0\x1\x0\x80\x0\x0\xfc\x6a\x6c\x0\x0\x0\x2c\x0\x0\x0\x0\x1\x0\x1\x0\x0\x2\x2\x44\x1\x0\x3b";
    exit;
}

例如,此代码调整了针对邮寄广告系列的open帐户,并返回1x1透明.gif图片。

它不是100%精确,因为有些人没有在电子邮件中加载图片,但是到目前为止我知道的最好的方式。