实现邮箱的已读回执

今天看到邮件客户端有一个很有趣的功能,叫「已读回执」。在办公场景下还是相当贴心的小细节。这个功能默认邮件协议是没有的,是开发者自己加上的。

我实现了一种可行的技术方案:

1.技术原理:使用 <img/>

需要在用户加载邮件时,调用后台的一个接口,以统计已读,调用一次则标记为收件人已读。统计的邮件需要id,建议是:邮件类型+邮件自身id。调用接口一般回选用 js 方法,但很多邮箱客户端处于安全考虑,屏蔽了 js 方法。那就在邮件中嵌入一个看不见的 <img> 标签加载统计地址,以实现统计的目的。

2.注意细节

要做到完全隐藏 <img> 要注意 alt 和 style,需要这样配置:

<img src="..." alt="" style="display: inline-block;width: 0;height: 0"/>
复制代码

3.方案弊端

但该方案并不完美,目前已知的可能导致统计不精准的场景有:

  • 如果你的邮件被标记为垃圾邮件,某些客户端会阻止 img 的加载。
  • 如果用户在未看的情况下直接转发,统计数据也不真实。

猜你喜欢

转载自juejin.im/post/5c11cbe551882510dd398a75