【问题标题】:Inferred web email application based on User agent基于用户代理的推断网络电子邮件应用程序
【发布时间】:2013-01-05 10:57:50
【问题描述】:

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


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

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

这里有一些数据:

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 字符串不同。即使您在Outlook 2010 上收到@gmail.com 电子邮件,电子邮件客户端仍将是 Outlook 2010,因为它有自己的 UA 字符串。

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

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

【问题讨论】:

    标签: php email email-client


    【解决方案1】:

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

    也许您可以在 "referer" 处查看请求是从哪里发送的。

    【讨论】:

    • 有趣的是,referrer 是一个很好的答案,但是有一些限制,在正常的 http:// 协议上,referrer 从请求跟踪图像中隐藏,但是当协议安全时你的图片,https:// 那么推荐人显示得很好。谢谢
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多