如何追踪电子邮件的已读状态
尽管电子邮件的地位已经大不如前,但它仍然是工作、学术等场合下最可靠的通讯方式方式。然而,作为一种古老的协议,电子邮件不支持很多现代工具的常见特性,一个最明显的例子就是已读回执。考虑到需要用到邮件交流的往往是一些正式、重要的事项,这其实是一个很大的痛点——你可能并不关心一条随手发出的 iMessage 是否被及时看到,但一定十分在意一封字斟句酌、徘徊已久才发给老师、老板的邮件会不会被淹没在对方的收件箱中。
部分邮件服务商——例如国内的网易、QQ,国外的 Outlook 等——注意到了这一需求,在发信页面中提供了要求「已读回执」的选项。但它们所谓的已读回执功能都需要对方在打开邮件后,手动确认发送回执。且不论这种机制是否会让收件人感到冒犯,它也没有解决最根本的「鸡生蛋和蛋生鸡」问题——如果对方根本就没有打开邮件,也就更不可能给你发送回执了。
那么,有没有什么办法能不依赖特定服务商/客户端,在邮件中实现已读回执,并且做到对收件人透明呢?
(**注:**本文意识到并承认「已读回执」功能在技术层面之外存在潜在的礼仪或伦理争议,但这超出了文章的讨论范围。本文对需求和实现方式的讨论不代表赞成或反对特定的行为,请读者自主判断这些功能的价值和用途并合理利用。)
用 GetNotify 实现邮件追踪:基本操作
GetNotify 就是这样一个邮件阅读状态追踪服务。它的原理很巧妙:当你通过 GetNotify 发送一封邮件时,它会在邮件的末尾插入一个长宽均为 1 像素的白色 png 图片链接;这张图片存储在 GetNotify 的服务器上。因此,只要 GetNotify 的服务器收到了下载这张图片的请求,就表明有人打开了你的邮件。
GetNotify 的使用方式很简单。注册账号后,在任何客户端中用该注册邮箱发信时,只要在收件人的邮箱地址后加上 .getnotify.com
,GetNotify 就会对你的邮件做上述处理,并开始追踪其阅读状态。
例如,如果你想追踪发送给
这一地址的邮件,只需将收件人填写为:
这一操作对收件人是透明的,即对方在邮件中仍然只会看到自己的地址。
如果需要追踪注册邮箱以外的其他邮箱发出的邮件,那么需要事先将其加入 GetNotify 账户的列表中,方法是在用户面板的 My Account 页点击 ADD MORE…,最多可以添加 15 个邮箱。
如此操作后,只要这封邮件被打开阅读,你的邮箱就会收到一封通知邮件,告知其被阅读的时间、客户端的类型和 IP 地址等信息。事实上,这封邮件每被阅读一次,都会被记录在案并向你通知(默认通知前三次,最多可以设置为前 50 次)。
除了邮件通知,你还可以在网页端的 Outbox 页面查看每封通过 GetNotify 追踪邮件的被阅读详情。值得一提的是 Summary 部分,其根据统计收件端的 IP 地址,估测出邮件被多少个不同的用户阅读,由此可以大致判断邮件是否被泄露或转发。
在用户面板的 Preference 页面中,可以进行一些进一步的个性化设置。你可以选择是用发信邮箱接收通知、还是将所有通知都发送到注册邮箱。用于追踪的图片也可以自定义。例如,你可以将默认的 1*1 像素白色图片换为一张透明图片,进一步减少其存在感;或者,也可以上传自己的 logo、头像等作为追踪图片,达到一石二鸟的效果。
需要指出,GetNotify 本身是完全免费的,但存在 5 封/天的使用限额;群发的邮件依其收件人数量计入限额。这一般是够用的(从实践的角度也没有必要追踪每一则通讯),但也可以通过捐赠来提高限额,价格为 12 美元半年或 20 美元一年。捐赠账户还可以追踪收件人的阅读时长。
进阶操作:用手动模式回避隐私风险
当然,任何一个对安全和隐私有所敏感的人,在看到 GetNotify 的原理后都会有所疑问:这相当于将原始邮件交给 GetNotify 修改并转发了一次,**是否会导致邮件内容泄露?**即便 GetNotify 在其隐私政策中作出了具体承诺,留一个心眼也是完全合理且必要的。那么,有什么办法能在实现追踪功能的同时尽可能回避风险呢?
其实,GetNotify 提供了一种「手动流程」。在该流程中,用户不再通过修改收件地址的方式将邮件交给 GetNotify 转发,而是手动生成那张关键的追踪图片、并将其插入到自己的邮件中。这虽然比前一种方法麻烦许多,但也回避了将邮件原文披露给第三方,可以说是在安全性和功能性间达到了较好的平衡。
具体操作方法是:在撰写完毕邮件后,点击 GetNotify 用户面板上的 Track Email 链接,根据提示依次设置接收通知的邮箱、收件人地址、邮件主题(无需与实际主题一致、起到辨识作用即可)、通知次数、图片样式等,然后点击 Get the Tracking Image! 按钮。接着,在下方的一分钟倒计时结束前,将生成的图片拖动到邮件撰写区中,最后正常发出邮件即可。通过这种方式能实现的追踪效果与自动流程是相同的。
引申应用:用 DIY 方式实现近似效果
再退一步说,如果你不愿向 GetNotify 这样的第三方提供任何通讯信息(例如,即使是较为安全的手动流程中,也需要披露你和收件人的邮件地址),其追踪思路也是值得借鉴的。说到底,GetNotify 所采用的追踪机制有两个关键要素:(a) 一张能「无缝融入」邮件正文的图片和 (b) 一个能记录访问者信息的链接。其中 (a) 是再简单不过的,只要用图片编辑软件创建一张 1*1 尺寸的空白或透明图片即可。(如果你足够伸手党,也可以下载这张现成的。)
对于 (b),如果你有一台自己的服务器(例如 VPS 或具有公网 IP 的 NAS),那么只要将图片存储在该服务器上,然后利用其自带的统计功能监测文件的请求记录即可。但对于数量更多的不具有这种条件的用户,也可以通过分步走的方式间接实现类似的效果。
首先,将准备好的图片上传到一个支持直链的图床上,例如微博图床、Imgur、Droplr 等,记下该图片的链接。
然后,通过 Bit.ly 为该图片链接生成一个短链接(需要注册)。之所以选择该服务,是因为它是在各个免费短链接服务中提供分析数据最详尽的。记下得到的短链接,其样式类似于 https://bit.ly/YetAHash
。
完成上述准备工作后,每当撰写完需要追踪的邮件后,将编辑器切换到 HTML 源码模式,在 </body>
标签之前插入指向上述短链的图片链接 <img src="https://bit.ly/YetAHash" alt="" />
,然后发送。
这样,就可以通过 Bit.ly 的分析页面判断收件情况了:一旦其显示有用户在发件时间之后访问了这一链接,就基本可以认为该信件被实际打开了。结合 Bit.ly 提供的 IP 位置统计功能,还可以进一步区分自己与收件人的访问记录,避免误判。这固然没有 GetNotify 那种一条龙式的撰写、通知来得方便,但也基本完全避免了隐私泄露的风险。