Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跟踪电子邮件的阅读时间_Php_Email_Outlook_Tracking - Fatal编程技术网

Php 跟踪电子邮件的阅读时间

Php 跟踪电子邮件的阅读时间,php,email,outlook,tracking,Php,Email,Outlook,Tracking,欢迎飞越者 我被要求使用PHP编写一个电子邮件跟踪器。 电子邮件客户端请求我的PHP脚本,认为它是一个图像(身体的背景)。 但是,客户端(即Outlook 2007)将挂起(不显示任何内容),直到我的PHP脚本达到超时 <?php define("DB_FILE", "sqlite:C:\wamp\www\database.sdb"); define("QUERY", "INSERT INTO Receipt (counter_id, reader_id, start_time, end_

欢迎飞越者

我被要求使用PHP编写一个电子邮件跟踪器。 电子邮件客户端请求我的PHP脚本,认为它是一个图像(身体的背景)。 但是,客户端(即Outlook 2007)将挂起(不显示任何内容),直到我的PHP脚本达到超时

<?php
define("DB_FILE", "sqlite:C:\wamp\www\database.sdb");
define("QUERY", "INSERT INTO Receipt (counter_id, reader_id, start_time, end_time) VALUES (%s, \"%s\", %d, %d)");
define("TIME_OUT", "10");

function track() {
    global $counter_id;
    global $reader_id;
    global $start_time;

    $end_time = time();

    $db = new PDO(DB_FILE);
    $db->exec(sprintf(QUERY, $counter_id, $reader_id, $start_time, $end_time));
}

$counter_id = $_GET["counter_id"];
$reader_id  = $_SERVER["REMOTE_ADDR"];
$start_time = time();

set_time_limit(TIME_OUT);
register_shutdown_function("track");

while(!connection_aborted()) {
    echo "\n";
    ob_flush();
}
?>

这是一个循环,它应该在客户端读取跟踪的电子邮件期间保持HTTP连接的活动状态。 如何解决这个问题有什么想法吗


关于

恐怕没有明智的方法来判断某人看电子邮件花了多长时间。邮件客户端在设计时根本没有考虑到这种数据收集,试图强制网络连接保持打开状态只会导致您遇到的那种问题

有些人(公司)利用浏览器会继续请求更多gif帧的事实(参见技术),对电子邮件的打开时间进行简单的跟踪,直到你告诉他们最后一帧已经发送。

你不太可能做到这一点。当有人查看电子邮件或访问网站时,没有连接。有来来回回的,但不是你想要做的。outlook挂起的原因是因为它正在等待您的“图像”出现,这就是它达到超时的原因。是的,请不要这样做。告诉你的经理或其他任何人,这是一个糟糕的想法,而且无论如何都是不对的。谢谢你们,是的,我同意这是一个糟糕的想法!你知道商业软件(电子邮件跟踪器)是如何追踪时间的吗?我还没有遇到任何能够追踪时间的分析软件包。。。我知道我的竞争对手在这方面的大部分能力。我能想到的唯一方法是使用Flash或某种形式的基于客户端的计时器,在服务器运行时向服务器发送“滴答声”。。。但我反对任何尝试过的邮件。