2015-11-26 2 views
3

Просто проверенный почтовый ящик через его API.Уникальный уникальный трек Mailgun

Все работает нормально.

Short: Как отслеживать уникальные открытия для определенной почты через веб-камеры.


(не обязательно, но отношение к Комплектность я использую Yii2 PHP рамки - без расширения, только быстрый стартовый код PHP от mailgun)

Письма присылают и отслеживает открытое мероприятие. Но я обнаружил, что он отслеживает каждую открытую одну и ту же почту.

Так какой лучший способ отслеживать, открывается ли определенная почта (через веб-сайт). Какие данные лучше всего идентифицировать по электронной почте или лучше использовать «пользовательские переменные» при отправке?

ответ

3

Хорошо, я думаю, что у меня есть приемлемый рабочий процесс - через «пользовательские переменные».

Вы можете определить разные значения для каждого получателя, чтобы вы могли отправлять уникальный идентификатор, а затем отслеживать этот идентификатор в открытых событиях. И просто сохраните один открытый для каждого отправителя или обновите время открытия.

Моей отправка кода (PHP):

$result = $mg->sendMessage($domain, array(
      'from' => '[email protected]>', 
      'to'  => '[email protected], [email protected]', 
      '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' => '{ 
       "[email protected]": {"first":"Recipient1", "group":"group1", "id":1}, 
       "[email protected]": {"first":"Recipient2", "group":"group2", "id":2} 
      }' 
)); 

Тогда в каждом случае вы получите ответ с уникальными идентификаторами.

Открытое событие первой электронной почты:

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

Открытое событие второй адрес электронной почты:

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

Лучший способ отслеживания открытий электронной почты - так называемый «пиксель». Сначала вам нужно добавить пиксель в свой адрес электронной почты.

Например:

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 конечную точку. В этой конечной точке вы получите доступ к ним и сделаете w/e вы хотите с ними.

Например:

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; 
} 

Этот код регулирует счетчик открытого для рассылки кампании, например, и возвращает 1x1 прозрачного .gif изображения.

Это не на 100% точно, потому что некоторые люди не загружают изображения в электронные письма, но его лучший способ я знаю до сих пор.

+0

Спасибо за ответ, но мой вопрос заключается в том, чтобы сделать это в mailgun (mailgun.com). Mailgun обрабатывает сам пиксель отслеживания, поэтому мой вопрос касается правильных параметров или рабочего процесса. – michaK

+0

https://documentation.mailgun.com/quickstart-events.html#events открытое событие. Привяжите к webhook к вашей конечной точке. Насколько я понял за несколько минут :) – ineersa

+0

https://documentation.mailgun.com/user_manual.html#tracking-opens более точный. Но я дал основы отслеживания (может быть, когда-нибудь вам захочется/нужно создать модуль рассылки). – ineersa

Смежные вопросы