首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php跟踪电子邮件阅读时长?

问如何使用php跟踪电子邮件阅读时长?
EN

Stack Overflow用户
提问于 2014-02-06 20:24:36
回答 2查看 648关注 0票数 0

我想要跟踪用户花在通过我发送的邮件上的秒数。我已经为它使用了php脚本。

代码语言:javascript
复制
<?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在邮件内容中调用的,比如

代码语言:javascript
复制
<body>
<img src="http://url.../openduration.php/>
</body>

现在,无论我花多长时间阅读邮件,阅读邮件的时长总是显示为23秒。我之前也试过关闭邮件,但没有效果。虽然当我在本地服务器上的网页上尝试时,这个脚本工作得很好,但我只尝试了Gmail。

EN

回答 2

Stack Overflow用户

发布于 2014-02-06 20:36:18

也许你正在谈论这件事

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2014-02-06 20:50:48

你不可能做你想做的事。Gmail缓存邮件中的所有图像,所以我认为在23秒没有收到任何东西之后,它会自动超时请求

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21602922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档