我们建立新闻通讯模块, 并发送电子邮件给会员。 环境是LAMP。 有没有办法知道会员是否打开邮件? 我听说如果'php'源代码放图像, 什么是最好的方法?有没有办法知道用户是否打开邮件?
回答
检查电子邮件是否被读取的常用方法是web beacon,它通常是一个小的1x1px不可见图像,从您的服务器加载,它可以跟踪图像何时加载并因此读取了电子邮件。
但是,这并不能保证能够正常工作,因为许多电子邮件客户端会阻止他们的电子邮件中的图像,或者您的读者可能正在使用纯文本的电子邮件客户端。
最终显然没有获得通知的傻瓜式方法,因为没有保证让电子邮件客户端以某种方式回应的方式;可以将电子邮件客户端设置为仅将收到的电子邮件解释为ASCII文本,仅此而已,并且您无法对此做任何事情。
但是;在大多数情况下,如果您通过电子邮件发送给期待电子邮件的用户,则可能是因为您的源地址打开了HTML呈现和内嵌图像,因此使用内联IMG标记并监视对引用文件的访问权限(显然,参考文献中的用户唯一ID)应该能够为您提供最好的服务。
无论如何,你永远无法做出这样的假设:如果你没有收到通知,那就意味着用户有而不是看到了电子邮件。
是的,有一个标准的机制(RFC 3798)称为阅读回执。它由所有现代邮件客户端实现,并且用户可以选择发送(或不发送)他们选择的收件人。
在没有得到用户同意的情况下,也有各种各样的非标准诡计,我不会详细说明。
编辑:
它应该像下面的(使用内置的PHP mail功能):
mail("[email protected]", "Let me know if you get this", "Important message", "Disposition-Notification-To: [email protected]\r\n");
每个电子邮件都有对应于用户来说,唯一命名的图像帐户(或DB行),当该图像被加载或访问时,您可以看到哪个用户打开了电子邮件。这依赖于用户收到HTML电子邮件。
由于您不是控制电子邮件客户端的人,因此没有万无一失的方法来实现它。许多人认真对待自己的隐私,以防止阅读收据,网络信标以及可用于检测阅读的所有其他技巧(人们可以关闭阅读收据,阻止图像,阻止未经请求的传出连接等)。
这是我的看法,但我相信你是以错误的方式接近问题的。与其试图强迫用户告诉你他们是否阅读过电子邮件,只是让它值得一段时间。获得这些信息显然对你有好处(否则为什么要这么做?),所以你可以分享这些好处并确保它是用户的决定。
这样,你将战场上的关系变成了伙伴关系(双赢)。
- 1. 有没有办法知道rxjs websocket是否打开
- 2. 有没有办法知道用户是否发送了短信?
- 3. 有没有办法知道电子邮件是否用C#成功转发?
- 4. 有没有办法知道文件名是否是Excel格式?
- 5. iPhone - 有没有办法知道引用是否(仍然)有效?
- 6. iOS:有没有办法知道用户是否选择了退出通知?
- 7. 有没有办法知道Data Saver是否启用?
- 8. 有没有办法知道异常是否被禁用?
- 9. 我如何知道是否有人打开了电子邮件?
- 10. 有没有办法知道手机是否有通话?
- 11. 有没有办法检测Outlook邮件是否没有附件?
- 12. 有没有办法知道dijit.Tree节点是打开还是关闭?
- 13. 有没有办法知道用户是否喜欢Facebook上的对象?
- 14. 有没有办法知道客户是否使用了优惠券代码?
- 15. 有没有办法知道timerTask是否已完成?
- 16. 有没有办法知道一行是否更新?
- 17. 有没有办法知道Flash Player是否安装了SWFObject?
- 18. 有没有办法知道ExecutorService是否成功结束?
- 19. 有没有办法知道HttpResponse是否在Https中?
- 20. 有没有办法知道是否已经创建了IWin32Window?
- 21. 有没有办法知道$ http请求是否超时?
- 22. 有没有办法通过已知的inode打开文件
- 23. 有没有办法知道谁是“setNeedsDisplay”的发件人?
- 24. 有没有办法知道有多少会话,打开一个特定的表
- 25. 有没有办法让webpack知道全局是否没有声明?
- 26. 有没有办法检测contextMenu是否在android中打开?
- 27. 有没有办法判断默认流是否打开?
- 28. 有什么办法知道媒体播放器是否开始
- 29. 有没有办法知道一个对象的C#方法是否被调用?
- 30. 有没有办法知道是否强制下载文件链接?
你听说过使用这种机制的类或代码吗? (PHP) – 2009-06-04 06:09:32