基于用户代理推断的Web电子邮件应用程序

时间:2013-01-22 08:55:51

标签: php email email-client

TL; DR 如何根据请求的UA字符串推断出使用了哪个Web电子邮件客户端?


我最近遇到了一个有趣的问题。我解析用户代理字符串以获取操作系统和浏览器|移动设备等。所以这不是解析用户代理的问题。

我的问题是你如何推断​​用于打开电子邮件的网络电子邮件应用程序?

这里有一些数据:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17

Browser: Chrome
OS: Windows 7

发送到的电子邮件地址是example@gmail.com,我从中访问了gmail应用。

UA字符串将用于Chrome。我意识到我不能认为电子邮件应用程序使用的电子邮件地址为@gmail.com是Gmail。

如果在移动设备或桌面平台上阅读电子邮件,因为它们的UA字符串不同,它很容易获得。即使您在@gmail.com上收到Outlook 2010封电子邮件,电子邮件客户端仍然是Outlook 2010,因为它拥有自己的UA字符串。

这只是我做的一些背景和一些假设。

编辑:所以我看到HERE实际上可以做到这一点。在HTTPS

上托管您的跟踪图片

2 个答案:

答案 0 :(得分:1)

我认为您无法知道电子邮件客户端只是检查UA。正如你所说,有时你可以(例如“展望”),但并非总是如此。

也许您可以查看“referer”以查看请求的发送位置。

答案 1 :(得分:0)

我怀疑UA标题是否足以可靠地猜测用于创建电子邮件的软件。除此之外,消息可能在两者之间被更改,有些客户端没有指定有意义的UA头。

我猜你在考虑更多消息细节时能够获得更可靠的结果。你必须生成类似指纹的东西。所以一些基于规则/测试的框架可能有意义,测试某些解决方案的典型细节。细节类似于多部分消息的正式结构,标题条目的顺序等。