1

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 字符串。

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

编辑:所以我在这里看到这实际上是可以做到的。将您的跟踪图像托管在HTTPS

4

2 回答 2

1

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

也许您可以查看“referer”以查看请求是从哪里发送的。

于 2013-01-22T09:01:14.137 回答
0

我怀疑 UA 标头是否足以对用于创建电子邮件的软件做出可靠的猜测。除此之外,消息可能在中间发生了更改,还有一些客户端没有指定有意义的 UA 标头。

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

于 2013-01-22T09:05:45.437 回答