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