1

我已经问过一个与此类似的问题,但对于 GMail,我对收到的一个很棒的答案非常满意。但是,我在使用另一个电子邮件客户端时遇到了问题:Apple Mail。

我正在为电子邮件营销跟踪创建自己的电子邮件跟踪系统。我已经能够通过使用 http referrer 来确定他们正在使用的每个人的电子邮件客户端,但由于某种原因,像 GMail 这样的 Apple Mail 不会通过 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 上次帮了大忙!

4

2 回答 2

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

您可以检查该用户代理是否仅与 Apple 的邮件匹配(即不匹配 Safari 或其他 Apple WebKit 实现)。

于 2011-02-25T00:19:12.503 回答
1

这是我会做的 -

  1. 首先,每个电子邮件地址的图片链接应该是唯一的。像pixel-.jpg这样的东西。应该以某种方式对用户的电子邮件地址进行编码。
  2. 跟踪作为 http 服务器的一部分发送的用户代理。
  3. 如果您获得了引用标头并且可以解析它,那就太好了。如果没有,用户代理可以提供帮助。
  4. 如果 user-agent 表示浏览器,则从电子邮件地址中找出电子邮件客户端。例如,如果电子邮件是 abc@gmail.com,您就知道它的 web gmail。
  5. 谷歌和其他公司也提供托管电子邮件。因此,如果用户代理指示浏览器,并且电子邮件地址是 abc@mydomain.com,那么电子邮件客户端仍有可能是 gmail。要了解更多信息,您可以查找 mydomain.com 的 MX 记录。如果 MX 记录中包含 google 或 googlemail,则您知道您正在处理 gmail。其他电子邮件托管公司也可以使用相同的方法。
  6. 如果它是基于桌面的客户端,例如 Outlook 或 Thunderbird,用户代理通常会指出这一点。

通常,电子邮件客户端会自动阻止外部图像,因此这种方法只有在用户允许为您的电子邮件地址加载图像时才有效。

一个常用的技巧是在图像中以及电子邮件中的所有链接上都有令牌。然后添加一行“如果您无法正确查看此消息,请单击此处”。如果图像被允许,那就太好了。否则,用户将无法阅读您的消息,并且可能会单击该链接。无论哪种方式,您都会获得用户代理和哈希令牌。

.. 但是如果用户不允许使用图片并且没有点击链接,则无法跟踪用户是否真的阅读了电子邮件。

最后提示:使用WURFL 库来解码用户代理。它是那里最好的图书馆。

于 2011-02-26T19:54:08.167 回答