【问题标题】:Are there any way to know whether user open mail?有没有办法知道用户是否打开邮件?
【发布时间】:2010-10-31 05:30:07
【问题描述】:

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

【问题讨论】:

    标签: php email lamp


    【解决方案1】:

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

    但是,这并不能保证有效,因为许多电子邮件客户端会阻止其电子邮件中的图像,或者您的读者可能正在使用纯文本电子邮件客户端。

    【讨论】:

      【解决方案2】:

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

      但是;在大多数情况下,如果您正在向希望收到电子邮件的用户发送电子邮件,则可能会为您的源地址打开 HTML 呈现和内联图像,因此使用内联 IMG 标记并监视对引用文件的访问(显然使用一些- 参考中的用户唯一 ID)应该给你最好的。

      无论如何,您永远无法假设如果您没有收到通知,则表示用户没有看到该电子邮件。

      【讨论】:

        【解决方案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");
        

        【讨论】:

        • 你听说过使用这种机制的类或代码吗? (php)
        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          没有万无一失的方法,因为您不是控制电子邮件客户端的人。许多人非常重视他们的隐私,以防止阅读回执、网络信标和所有其他可用于检测阅读的技巧(人们可以关闭阅读回执、阻止图像、防止未经请求的传出连接等等)。

          这当然是我的观点,但我相信您以错误的方式解决问题。与其试图强迫用户让你知道他们是否已经阅读了电子邮件,不如让它值得他们花时间。拥有这些信息显然对您有一些好处(否则为什么要这样做?)因此您可以分享这些好处并确保这是用户的决定。

          这样,您可以将关系从战场变成伙伴关系(双赢)。

          【讨论】:

            猜你喜欢
            • 2023-03-18
            • 1970-01-01
            • 2013-05-25
            • 2014-11-13
            • 2018-05-23
            • 1970-01-01
            • 1970-01-01
            • 2014-09-11
            • 1970-01-01
            相关资源
            最近更新 更多