2011-02-25 128 views
1

我已经问过similar question这个问题,但对于GMail,我非常满意我收到的真棒答案。但是,我遇到另一个电子邮件客户端问题:Apple Mail。电子邮件跟踪 - Apple Mail

我正在为电子邮件营销跟踪创建我自己的电子邮件跟踪系统。我能够通过使用http引用来确定他们使用的每个人的电子邮件客户端,但出于某种原因,像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帮助很大!

回答

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

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

+1

这不会帮助他检测正在使用的电子邮件客户端是否为Apple Mail。 – jasonbar 2011-02-25 00:21:43

+0

尽管这可能有效,但意味着我必须更改当前的实现。我希望能够根据图像的要求找出电子邮件客户端。我已经为GMail,Yahoo,AOL,outlook等做过这些,我真的希望我能以同样的方式为Apple Mail做同样的事情! – Abs 2011-02-25 00:22:41

+0

嗯,你可能会在那里的东西。我在这里查看了safari的用户代理:http://www.useragentstring.com/pages/Safari/ - 它看起来像是在safari的用户代理之后有一个版本,但不是Apple Mail用户代理。但不确定,任何人都可以证实这一点总是如此? – Abs 2011-02-25 00:35:15

1

这里是我会做什么 -

  1. 首先,图像链接,每个电子邮件地址应该是唯一的。像像素.jpg。应该以某种方式编码用户的电子邮件地址。
  2. 跟踪作为http服务器的一部分发送的用户代理。
  3. 如果你得到引用标题并且可以解析它,那很好。如果没有,用户代理可以提供帮助。
  4. 如果用户代理指示浏览器,请从电子邮件地址中找出电子邮件客户端。例如,如果电子邮件是[email protected],那么您就知道它的web gmail。
  5. 谷歌和其他公司也提供托管电子邮件。因此,如果用户代理表示浏览器,并且电子邮件地址是[email protected],那么电子邮件客户端仍然有机会成为gmail。要了解更多信息,可以查看mydomain.com的MX记录。如果MX记录中包含谷歌或谷歌邮箱,那么您知道您正在处理Gmail。同样的方法可以用于其他电子邮件托管公司。
  6. 如果它是基于桌面的客户端,如outlook或thunderbird,用户代理通常会指出这一点。

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

通常的诀窍是在图像中以及电子邮件中的所有链接中都有令牌。然后添加一行“如果您无法正确查看此消息,请单击此处”。如果图像被允许,很好。否则用户将无法阅读您的消息,并可能会点击链接。无论哪种方式,您都可以获得用户代理和散列标记。

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

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