JAVA电子邮件跟踪像素跟踪阅读时间

Posted

技术标签:

【中文标题】JAVA电子邮件跟踪像素跟踪阅读时间【英文标题】:JAVA email tracking pixel keep track of reading time 【发布时间】:2021-11-27 17:21:35 【问题描述】:

我正在从事电子邮件跟踪像素项目,我想确保用户在考虑“阅读”之前至少花费 30 秒阅读电子邮件

我正在使用 Java Springboot 作为后端服务器和 html 来创建电子邮件模板

在我的模板中,我将此像素用于跟踪:

<img id="tr_pixel" src="https://localhost:8080/api/v1/images/1"/>

一旦图像被加载,它将请求我的服务器:

@GetMapping("/images/emailID")
public ResponseEntity<byte[]> getImagePixel (@Pathvariable String emailID) 
    try
      // wait 30seconds before saving the event
      Thread.sleep(30000);
      // If the connection with the client is lost, throw an exception and ignore the next line
      //save tracking only if user spend > 30s 
      service.saveTracking(emailID);

      return ok().contentType(IMAGE_PNG).body(pixel);

     catch (ConnectionLostException)
       // catch connection lost error if the client close the email before 30s or if did not receive the response
    
    

有没有办法检查与客户端的连接是否丢失,或者客户端是否收到http响应?

【问题讨论】:

【参考方案1】:

也许 302 重定向会对您有所帮助。 定义两个入口点就足够了。

    第一个点@GetMapping("/wait30second/emailID"),收到请求后,休眠30秒,发送302重定向到第二个点...your-site.../images/emailID,例如:https://www.baeldung.com/spring-redirect-and-forward 第二点@GetMapping("/images/emailID") 只是修复了对像素的重复访问 service.saveTracking(emailID) 没有 30 秒的停顿。 302重定向由客户端执行。因此,如果没有重复上诉,则表示该信未被阅读。

但是,请记住,随着此类监控的大量使用,您的电子邮件被标记为垃圾邮件的风险很高。

【讨论】:

好主意!我不知道每个电子邮件客户端在这种情况下的表现如何,但值得一试。 谢谢亚历山大!这是一个好主意,但是正如您所提到的,我的电子邮件可能会变成垃圾邮件,我将继续寻找其他解决方案,如果找不到,我将接受您的回答。欢呼;)

以上是关于JAVA电子邮件跟踪像素跟踪阅读时间的主要内容,如果未能解决你的问题,请参考以下文章

群发邮件追踪

已发送邮件不显示带有自定义 Outlook 消息表单的邮件跟踪

php中的电子邮件跟踪技术

跟踪大量电子邮件活动

跟踪电子邮件退回、打开、点击

使用 PHP 和图像跟踪电子邮件