Отслеживание электронной почты - Apple Mail - PullRequest
1 голос
/ 25 февраля 2011

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

Я создаю собственную систему отслеживания электронной почты для отслеживания почтового маркетинга.Я смог определить клиент электронной почты каждого человека, которого они используют, с помощью ссылки HTTP, но по какой-то причине Apple Mail, как GMail, не отправляет через HTTP_REFERRER.Для GMail решением было использовать https для того места, где я размещал прозрачное изображение, но это не сработало для Apple Mail.

print_r($_SERVER); дает только такой заголовок:

WM_UCONTROL_XMLRPC_SERVER - http://aaaaaaaaa

HTTPS - on

ACCESS_DOMAIN - aaaaa

DATABASE_SERVER - aaaaaaa

SITE_ROOT - /home/121000

SITE_CGIROOT - /home/121000/cgi-bin

SITE_HTMLROOT - aaaaaa

PHPRC - aaaaa

HTTP_X_FORWARDED_HOST - aaaaaaa

HTTP_X_FORWARDED_SERVER - aaaaa

HTTP_X_FORWARDED_FOR - aaaaaa

HTTP_HOST - aaaaaa

HTTP_CONNECTION - close

HTTP_USER_AGENT - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.18 (KHTML, like Gecko)

HTTP_ACCEPT - */*

HTTP_ACCEPT_LANGUAGE - en-us

HTTP_ACCEPT_ENCODING - gzip, deflate

SERVER_SIGNATURE - <address>Apache/2.2.9 Server at aaaaaaa Port 443</address>


SERVER_SOFTWARE - Apache/2.2.9

SERVER_NAME - aaaaaa

SERVER_ADDR - aaaaaa

SERVER_PORT - 443

Обратите внимание, что некоторые детали скрыты строкой.

Есть ли другой способ узнать, когда клиент Apple Mail запрашивает это изображение?

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

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.18 (KHTML, like Gecko)

Вы можете проверить, будет ли этот пользовательский агент соответствовать только почте Apple (т.е. не Safari или другим реализациям Apple WebKit).

1 голос
/ 26 февраля 2011

Вот что я бы сделал -

  1. Во-первых, ссылка на изображение для каждого адреса электронной почты должна быть уникальной.Что-то вроде pixel-.jpg.Он должен каким-то образом кодировать адрес электронной почты пользователя.
  2. Отслеживание пользовательского агента, который отправляется как часть http-сервера.
  3. Если вы получили заголовок реферера и можете его проанализировать, отлично.В противном случае пользовательский агент может помочь.
  4. Если пользовательский агент указывает браузер, определите почтовый клиент с адреса электронной почты.Например, если адрес электронной почты abc@gmail.com, вы знаете его веб-адрес электронной почты.
  5. Google и другие компании также предоставляют размещенную электронную почту.Итак, если пользовательский агент указывает браузер, а адрес электронной почты - abc@mydomain.com, существует вероятность того, что почтовый клиент - это gmail.Чтобы узнать больше, вы можете посмотреть записи MX для mydomain.com.Если в записи MX есть google или googlemail, вы знаете, что имеете дело с gmail.Тот же подход может быть использован для других компаний, занимающихся хостингом электронной почты.
  6. Если это клиент для настольного компьютера, такой как outlook или thunderbird, пользовательский агент обычно указывает это.

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

Обычный прием состоит в том, чтобы добавить маркер в изображение, а также во все ссылки в сообщении электронной почты.Затем добавьте строку «Если вы не можете просмотреть это сообщение должным образом, нажмите здесь».Если изображение разрешено, отлично.В противном случае пользователь не сможет прочитать ваше сообщение и, скорее всего, перейдет по ссылке.В любом случае вы получаете user-agent и хеш-токен.

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

Окончательный совет. Используйте Библиотека WURFL для декодирования пользовательского агента.Это лучшая библиотека там.

...