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
答案 0 :(得分:1)
我认为您无法知道电子邮件客户端只是检查UA。正如你所说,有时你可以(例如“展望”),但并非总是如此。
也许您可以查看“referer”以查看请求的发送位置。
答案 1 :(得分:0)
我怀疑UA标题是否足以可靠地猜测用于创建电子邮件的软件。除此之外,消息可能在两者之间被更改,有些客户端没有指定有意义的UA头。
我猜你在考虑更多消息细节时能够获得更可靠的结果。你必须生成类似指纹的东西。所以一些基于规则/测试的框架可能有意义,测试某些解决方案的典型细节。细节类似于多部分消息的正式结构,标题条目的顺序等。