Intereting Posts
PHP не будет показывать никаких ошибок Использование API для отправки ссылок не включает в себя изображение, название или мета-дескриптор PHP Самый эффективный способ получить следующую букву в алфавите с помощью PHP Как разрешить ошибку «не в GROUP BY» в запросе mysql Как выполнить этот два запроса в php? Возврат списка цепочек и последнего сообщения каждого сообщения с использованием базы данных php и mysql подсчет часов и добавление минут в php удалить часть строки аргумента URL в php PHP SimpleXML не сохраняет разрывы строк в атрибутах XML PHP-функция или файл для запуска до и после каждого запроса Невозможно получить репозиторий композитора «путь» Установите значение по умолчанию для раскрывающегося списка с выбранным последним значением маскирование удаленных субдоменов PHP: обработка специальных символов с помощью iconv cURL get_data ($ url) с абсолютным URL-адресом

Уникальный уникальный трек Mailgun

Просто проверенный почтовый ящик через 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% точно, потому что некоторые люди не загружают изображения в электронные письма, но это лучший способ, который я знаю до сих пор.