刚刚通过API测试了mailgun。
一切都很好。
简短:如何通过网络抓访跟踪特定邮件的唯一展开次数。
(不一定相关,但对于completness我使用Yii2 PHP框架 - 没有扩展,只是从mailgun快速启动php代码)
发送电子邮件并跟踪开放事件。 但我发现它跟踪同一邮件的每一次打开。
那么跟踪特定邮件是否被打开的最佳方式是什么(通过webhook)。哪些数据最适合识别特定电子邮件,或者在发送时更好地使用“自定义变量”?
答案 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%精确,因为有些人没有在电子邮件中加载图片,但是到目前为止我知道的最好的方式。