如何检查java应用程序发送的邮件是否被读取?

时间:2014-08-06 12:28:44

标签: java java-ee javamail liferay-6

请帮我解决这个问题。

我们正在使用java应用程序向用户发送邮件。

现在,我们要实现以下功能。

  1. 当用户打开/阅读邮件时,我们希望将时间戳保存在数据库中。
  2. 此人打开我们发送给他/她的邮件的次数。
  3. 请帮我解决这个问题。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

一般来说,这是不可能100%确定的。电子邮件通常是火灾和遗忘。然而,有一些常用的技巧来获得一个想法。

您可以将电子邮件设为嵌入了1像素图片的html电子邮件。当您发送电子邮件时,您为每个外发电子邮件创建一个新的图像URL(我为每个收件人设置一个)并将该URL保存在某个地方(例如在数据库中)。您还必须设置一个非常简单的服务器,该服务器将接受对您正在创建的图像网址的请求。然后,该服务器响应这些调用,向每个调用发送相同的简单1像素图像,并注意调用哪个URL(这可以通过简单的Apache服务器完成,使用访问日志来跟踪URL)。每次用户打开您的电子邮件时,他的电子邮件客户端通常会加载图像。然后,您的服务器会收到一个请求,因为您为每个收件人创建了唯一的网址,您知道谁在何时打开了该电子邮件。注意事项:如果转发电子邮件,其他人可以激活相同的链接;用户可以将客户端配置为不打开图像;等等 如果你环顾四周,你也可以找到一些现成的解决方案。

如果您碰巧也控制了用户的电子邮件服务器和/或电子邮件客户端,那么您还有很多其他可能性。