Отслеживание электронной почты - GMail - PullRequest
17 голосов
/ 19 февраля 2011

Я создаю собственную систему отслеживания электронной почты для отслеживания почтового маркетинга.Мне удалось определить клиент электронной почты каждого человека, которого они используют, с помощью ссылки HTTP, но по какой-то причине GMAIL вообще не отправляет HTTP_REFERRER!

Так что я пытаюсь найти другой способ определения, когда запросы gmailпрозрачное изображение с моего сервера.Я получаю следующие заголовки print_r($_SERVER);:

DOCUMENT_ROOT  =  /usr/local/apache/htdocs

GATEWAY_INTERFACE  =  CGI/1.1

HTTP_ACCEPT  =  */*

HTTP_ACCEPT_CHARSET  =  ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP_ACCEPT_ENCODING  =  gzip,deflate,sdch

HTTP_ACCEPT_LANGUAGE  =  en-GB,en-US;q=0.8,en;q=0.6

HTTP_CONNECTION  =  keep-alive

HTTP_COOKIE  =  __utmz=156230011.1290976484.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=156230011.422791272.1290976484.1293034866.1293050468.7

HTTP_HOST  =  xx.xxx.xx.xxx

HTTP_USER_AGENT  =  Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10

PATH  =  /bin:/usr/bin

QUERY_STRING  =  i=MTA=

REDIRECT_STATUS  =  200

REMOTE_ADDR  =  xx.xxx.xx.xxx

REMOTE_PORT  =  61296

REQUEST_METHOD  =  GET

Есть ли что-нибудь полезное в этом списке?Или есть что-то еще, что я могу сделать, чтобы получить реферальный http, если не как другим ESP удается определить, использовался ли gmail для просмотра электронной почты ?

Кстати, я ценю этоесли мы можем удержаться от того, является ли это этическим или нет, так как многие ESP уже делают это, я просто не хочу платить за их обслуживание и хочу сделать это внутренне.

Спасибо всем за любые советы по внедрению.

Обновление

Просто подумал, что обновлю этот вопрос и проясню его с учетом щедрости.

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

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

Ответы [ 2 ]

19 голосов
/ 22 февраля 2011

Ваши изображения запрашиваются с помощью HTTP или HTTPS?

Если так, то это проблема.

HTTPS-> Рефералы HTTP не пропускают заголовок реферера (HTTP_REFERER).

Если вы встраиваете размещенное изображение HTTP в электронное письмо, запрашиваемое со страницы HTTPS, оно не отправит реферера.(HTTP-страницы, запрашивающие HTTPS, однако, отправляют реферер.) Решение состоит в том, чтобы внедрить изображение как HTTPS.Я проверил это, и, конечно же, безопасные образы HTTPS действительно посылают Referrer.

Один из способов, которым Gmail может блокировать информацию о реферере для загруженных изображений по умолчанию, - это если они используют политику реферера , которая поддерживается в большинстве современных браузеров.(По состоянию на 2011 г. они не реализовывали такую ​​политику.)

См. Скриншот ниже встроенного изображения, которое динамически генерируется с помощью HTTP REFERER запроса: enter image description here

0 голосов
/ 19 февраля 2011

Сделайте ссылку примерно такой: http://www.example.com/image.jpg?h=8dh38dj

image.jpg - это файл PHP, а 8dh38dj - это хэш электронной почты, в которую вы включили ссылку. Когда пользователь запрашивает файл, ваш PHP-скрипт получит'8dh38dj', найдите это в своей базе данных и найдите соответствующий адрес электронной почты.Выполните синтаксический анализ домена, т.е. gmail.com, по адресу example@gmail.com, и вы узнаете, что он принадлежит gmail.Чтобы файлы jpg выполнялись как PHP, используйте AddHandler в php

...