Javascript 如何捕获电子邮件中单击链接的时间戳?

Javascript 如何捕获电子邮件中单击链接的时间戳?,javascript,html,forms,email,Javascript,Html,Forms,Email,这可能有点棘手(至少对我来说,但你们可能更聪明)。我需要准确地捕捉读者在电子邮件中单击链接的时间戳。但是,此链接不是指向其他网页的超链接。它是一个格式为GET请求的链接,带有查询字符串,将自动提交表单 这里是棘手的部分…表单处理不是由PHP或.NET或任何其他服务器端语言处理的。它是一个表单引擎,由基于云的营销平台托管和管理,该平台捕获并显示表单提交数据(因此我无法访问幕后的代码) 现在,如果这不是一封电子邮件,我会说它足够简单,只需使用Javascript。然而,javascript与电子邮件

这可能有点棘手(至少对我来说,但你们可能更聪明)。我需要准确地捕捉读者在电子邮件中单击链接的时间戳。但是,此链接不是指向其他网页的超链接。它是一个格式为GET请求的链接,带有查询字符串,将自动提交表单

这里是棘手的部分…表单处理不是由PHP或.NET或任何其他服务器端语言处理的。它是一个表单引擎,由基于云的营销平台托管和管理,该平台捕获并显示表单提交数据(因此我无法访问幕后的代码)

现在,如果这不是一封电子邮件,我会说它足够简单,只需使用Javascript。然而,javascript与电子邮件的配合并不太好(我只是假设有一些电子邮件客户端支持javascript)

在不使用任何类型的脚本的情况下,如何获取单击链接时的时间戳?这可能吗


我能想到的最好的解决方案是使用javascript将链接点指向一个中间页面以捕获时间戳,然后重定向到表单提交。唯一的问题是,它只会捕获页面加载的时间戳,而不会捕获实际的点击活动。

如果“没有任何类型的脚本”,就无法完成您想要的操作。如果未编写脚本,则不能添加或更改任何功能

最好的选择就是您建议的:使用记录请求时间的中间页面。除非出现异常情况(如服务器停机),否则单击链接和请求到达服务器之间的时间将少于1秒


您真的需要比~1s更高的分辨率或精度吗?以毫秒或微秒为单位的结果还有什么额外的好处?我无法想象你会从这样一件事中得到实实在在的好处,尽管如果你真的有这样一件事,我很想听听

我最初的想法是,如果没有一些脚本功能,就无法完成您要做的事情,但我认为这确实取决于您要完成的总体目标

虽然从你所写的内容来看,你试图实现的目标是模棱两可的,但我要做一个假设:你试图记录与特定电子邮件的交互

根据所需的解决方案,这是非常可能的——事实上——这是大多数企业多年来一直在做的事情

开始我对该技术的解释时,考虑大多数邮件客户端(Web或其他)中的通用功能:

存在这种情况的原因是,加载到您正在阅读的邮件中的图像通常来自一个不由邮件客户端托管的远程服务器。在请求该映像的过程中,大量关于您自己的信息通过请求中的HTTP头提供给外部服务器,其中包括请求的时间戳。因此,上述按钮用于防止未经您同意的情况发生

也就是说,同样重要的是要注意到其他邮件客户端提供商,最著名的是gmail,现在是如何实现这一目标的。上述技术如此普遍(广告商和其他更邪恶的团体为了钓鱼、恶意软件等目的而使用),以至于谷歌决定自己开始缓存所有邮件图像。结果是,电子邮件看起来完全一样,但所有图像请求都指向谷歌的缓存版本

长话短说,您可以通过图像请求获得一个时间戳来记录与电子邮件的交互,但是这种度量集合一般来说,不管它是否以我所概述的方式完成,至少在某种程度上是邮件客户端试图阻止的


编辑-将此内容与您在问题中提到的内容以及您关于创建中间页面的想法联系起来,您可以跳过该页面,而是将图像请求指向您控制的服务器

如果服务器尚未捕获提交时间,并且它是一个营销平台,那么您可能应该联系服务器的管理员,询问它丢失的原因/它是否可以被添加没有义务分享,但我很好奇为什么你需要毫秒分辨率的电子邮件点击。考虑到电子邮件固有的异步性(发送到服务器、客户端检索、用户查看、点击链接等),很难想象其精确性的价值。无论如何,我认为中间页方法是你最好的选择。您可以在中间服务器上记录时间戳,而不是在中间页面中使用JavaScript。“唯一的问题是,它将只捕获页面加载的时间戳,而不是实际的单击活动的时间戳。”您需要什么类型的精度?原子的
Click here to display images below