Просто проверенный почтовый ящик через API.
Все работает нормально.
Short: как отслеживать уникальные открытия для определенной почты через веб-камеры.
(Не обязательно релевантно, но для полноты я использую фреймворк Yii2 PHP – не расширение, просто быстрый PHP-код из mailgun)
Письма отправляются и отслеживаются открытое событие. Но я обнаружил, что он отслеживает каждое открытие одной и той же почты.
Итак, как лучше всего отслеживать, открывается ли определенная почта (через webhook). Какие данные лучше всего идентифицировать по электронной почте или лучше использовать «пользовательские переменные» при отправке?
Хорошо, я думаю, что я получил приемлемый рабочий процесс – через «пользовательские переменные».
Вы можете определить разные значения для каждого получателя, чтобы вы могли отправлять уникальный идентификатор, а затем отслеживать этот идентификатор в открытых событиях. И просто сохраните один открытый для каждого отправителя или обновите время открытия.
Мой код отправки (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} }' ));
Затем в каждом случае вы получаете ответ с уникальными идентификаторами.
Открытое событие первого электронного письма:
"user-variables": { "my-custom-data": "{\"my_message_id\": 1}" },
Открытое событие второго электронного письма:
"user-variables": { "my-custom-data": "{\"my_message_id\": 2}" },
Лучший способ отслеживать открытие электронной почты – так называемый «пиксель». Сначала вам нужно добавить пиксель в свой адрес электронной почты.
Например:
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; }
Этот код настраивает счетчик открыток для кампании рассылки, например, и возвращает 1×1 прозрачное изображение .gif
.
Это не на 100% точно, потому что некоторые люди не загружают изображения в электронные письма, но это лучший способ, который я знаю до сих пор.