有没有办法知道用户是否打开邮件?

时间:2009-06-04 05:43:04

标签: php email lamp

我们建立时事通讯模块, 并向会员发送电子邮件。 环境是LAMP。 有没有办法知道会员是否打开邮件? 我听说如果'php'来源放图像, 什么是最好的方式?

5 个答案:

答案 0 :(得分:4)

最终显然没有万无一失的方式来获取通知,因为没有保证让电子邮件客户端以某种方式回复的方式;电子邮件客户端可以设置为仅将传入的电子邮件解释为ASCII文本,仅此而已,您无能为力。

然而;在大多数情况下,如果您通过电子邮件发送给期望收到电子邮件的用户,可能会为您的源地址启用HTML呈现和内嵌图像,因此使用内联IMG标记并监视对引用文件的访问(显然使用一些 - 参考中的用户唯一ID应该为您提供最好的。

无论你怎么能做出这样的假设:如果你没有收到通知,那就意味着用户看到了这封电子邮件。

答案 1 :(得分:3)

是的,有一种称为阅读回执的标准机制(RFC 3798)。它由所有现代邮件客户端实现,用户可以选择发送(或不发送)他们选择的收据。

未经用户同意,还有各种非标准的诡计,我不会详细说明。

编辑:

它应该如下(使用内置的PHP mail函数):

mail("foo@foo.com", "Let me know if you get this", "Important message", "Disposition-Notification-To: sender@sender.com\r\n");

答案 2 :(得分:3)

由于您不是控制电子邮件客户端的人,因此没有万无一失的方法可以做到这一点。许多人认真对待他们的隐私,以防止读取收据,网络信标和所有其他可用于检测阅读的技巧(人们可以关闭阅读回执,阻止图像,防止未经请求的传出连接等)。

这当然是我的看法,但我相信你是以错误的方式解决问题。而不是试图强迫用户让他们知道他们是否阅读过电子邮件,只是让它值得一试。拥有这些信息显然对您有所帮助(否则为什么会这样做?)因此您可以分享这些好处,并确保这是用户的决定。

这样,你就可以将关系从战场转变为伙伴关系(赢/赢)。

答案 3 :(得分:2)

检查电子邮件是否已被阅读的常用方法是web beacon,它通常是从服务器加载的小型1x1px不可见图像,可以跟踪图像何时加载,因此电子邮件已被阅读。

但是,由于许多电子邮件客户端会阻止其电子邮件中的图像,或者您的读者可能只使用纯文本电子邮件客户端,因此无法保证此功能。

答案 4 :(得分:1)

每封电子邮件中都有一个唯一命名的图像,对应于用户帐户(或数据库行),当加载或访问该图像时,您可以看到哪个用户打开了该电子邮件。这依赖于用户接收HTML电子邮件。