如何使用php跟踪电子邮件阅读持续时间?

时间:2014-02-06 12:24:36

标签: php email html-email

我想跟踪用户通过我发送的邮件花费的秒数。 我已经使用了PHP脚本。

<?php
// Time the request
$st = time();
$t = $st;
$ft = $st + 30;
ignore_user_abort(true);
set_time_limit(0);
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
syslog(LOG_ERR,"URL : ".$actual_link);

while($st < $ft)
{
    // Did the connection fail?
    echo "HI \n";
    flush();
    ob_flush();
     if(connection_status() != 0)
        {
          $duration1 = time() - $t;
          syslog(LOG_ERR,"SKIM : User Stopped For TIME: ".$duration1);
          break;
         }

    // Sleep for 1 seconds
    sleep(1);
    $st = $st + 1;
}
if($st >= $ft)
{
   $duration = $st - $t;
   syslog(LOG_ERR,"READ : User Stopped For TIME: ".$duration);
 }
?>

通过HTML在邮件内容中调用

<body>
<img src="http://url.../openduration.php/>
</body>

现在,阅读邮件的持续时间总是大约23秒,无论我读取它的持续时间如何。我之前尝试关闭邮件但没有效果。虽然当我在本地服务器上的网页上试用它时脚本工作正常。我只尝试使用Gmail。

2 个答案:

答案 0 :(得分:1)

可能你在谈论这个

<?php
session_start();
$_SESSION['start'] = time();


/*here goes the code of email*/

$_SESSION['end'] = time(); 
echo "Start:".$_SESSION['start']."--"."End:".$_SESSION['end']."</br>";
echo "Total Execution time is : ".date("H:i:s",$_SESSION['end']-$_SESSION['start']);

?>

答案 1 :(得分:0)

你无法做你想做的事。 Gmail会在邮件中缓存所有图片,因此我认为在23秒内没有收到任何内容后,它会自行将请求超时