我正在开发一个电子邮件系统(基于PHP),用户将发送数百封电子邮件,并且我想跟踪这些电子邮件,以便我能够知道该电子邮件是否已打开?我如何知道是否有人打开了电子邮件?
任何人都可以指导我如何做到这一点?
谢谢
我正在开发一个电子邮件系统(基于PHP),用户将发送数百封电子邮件,并且我想跟踪这些电子邮件,以便我能够知道该电子邮件是否已打开?我如何知道是否有人打开了电子邮件?
任何人都可以指导我如何做到这一点?
谢谢
我知道的唯一方式 - 它不是很可靠的 - 是发送HTML邮件中,你有这样的:
PHP代码:
<img src='http://www.domain.com/mailcheck.php?user=123'>
形象,但在这个过程中,您可以跟踪GET用户。您还可以找到一种方法来修改邮件标题以请求收据 - 但我不知道该怎么做 - 而且由于请求的自愿性质,它也不可靠。
很简单,你建立一个PHP脚本,返回一个1x1图像。让该脚本记录用户代理和IP(您甚至可以记录推荐人)。
现在将其嵌入到电子邮件中。
由于gmail已经开始显示图片,但是会从它自己的服务器上托管它们,但是您可以知道邮件是否打开,但您可能无法跟踪正确的IP。检查这里一些参考:Effect of gmail caching and showing images by default
您可以了解mailchimp是怎么做的:MailChimp Working
编辑: 码参考:
<img src="http://www.example.com/checkopen.php?user_id=20" />
里面的checkopen.php
脚本,拿到user_id
场,现在对应的到这个字段,存储这个用户打开邮件。
发送邮件时,请确保每次发送邮件时都增加user_id
字段。
因此,无论何时渲染此图像,它都会调用相应的url,因此您可以在系统中登录正在打开的邮件的状态。
电子邮件有一个disposition notification field你可以用它来实现这一点。当然,这取决于远端的MUA。他们可以自由地忽略MDN(这是一个礼貌的请求,而不是其他2个答案所暗示的颠覆性内容)。您最终收件人的MUA会发送一封电子邮件回复您,表示您的邮件已被阅读。您的SMTP服务器可以过滤这些信息,并且您可以运行某种将发送的电子邮件映射到响应的程序。
我非常反对嵌入允许用户跟踪的小HTML片段。
尽管我没有发现为什么简单的PHP文件没有生成包含的图像,但这是另一种非常复杂的生成未被我自己的PHP 5.4.30 Web服务器拒绝的图像文件的方式。
这是我放入索引的代码。AN/email_image /子目录下的PHP文件:
<?php
$message_id = $_REQUEST['message_id'];
$graphic_http = 'http://mywebsite.com/email_image/message_open_tracking.gif';
$filesize = filesize('message_open_tracking.gif');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Disposition: attachment; filename="a_unique_image_name_' . $message_id . '.gif"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$filesize);
readfile($graphic_http);
exit;
?>
对于图像文件名,我用了以下内容:
http://mywebsite.com/email_image/?message_id=12345
内email_image文件夹也命名为 “message_open_tracking.gif” 空白1x1的gif图片。
也可以修改index.php文件,以便使用message_id将该消息标记为已被读取。如果查询字符串中包含其他变量(如收件人的电子邮件地址),那些值也可以在该index.php文件中使用。
非常感谢贝内特石以下文章: http://www.phpdevtips.com/2013/06/email-open-tracking-with-php-and-mysql/
就像你说的,它不是很可靠。此外,这是一种颠覆。我不会相信那些会这样跟踪我的技巧的电子邮件。 –