首页 > php > php中如何实现像素标签-对方是否查阅你的邮件
2021
08-12

php中如何实现像素标签-对方是否查阅你的邮件

背景

今天在爱股票的隐私声明中看到这一条:

⽹站信标和像素标签

除 Cookie 外,我司还会在⽹站上使⽤⽹站信标和像素标签等其他同类技术。例如,我司向您发送的电⼦邮件可能含有链接⾄我司⽹站内容的点击 URL。如果您点击该链接,我司则会跟踪此次点击,帮助我司了解您的产品或服务偏好并改善客户服务。⽹站信标通常是⼀种嵌⼊到⽹站或电⼦邮件中的透明图像。借助于电⼦邮件中的像素标签,我司能够获知电⼦邮件是否被打开。如果您不希望⾃⼰的活动以这种⽅式被追踪,则可以随时退订。


这类技术其实已经在很多商业网站中有涉及到,但是很多网站不会明确的指明。也有的叫做“埋点技术”,即用来收集用户的点击事件来分析用户的喜好。就像apple声明的那样,一般不会将用户操作情况和用户的身份绑定,仅仅用来分析网站的运行情况。


网易邮箱提供了「已读回执」的功能,但实际上这个功能非常鸡肋,收件人点开邮件会有一个弹窗“该邮件邀请已读回执,是否发送?”,但一般看到后会觉得“又被冒犯到”。

本文简单介绍一下「像素标签」实现的原理,原理其实非常简单,(以php文件为例)用php文件打开后伪装成是一个像素的图片,实则再打开的同时,就将用户的ua信息写到服务器的文本里面

<?
error_reporting(0);
Header("Content-Type: image/jpeg");
 
//Get IP
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}
 
//Time
$actual_time = time();
$actual_day = date('Y.m.d', $actual_time);
$actual_day_chart = date('d/m/y', $actual_time);
$actual_hour = date('H:i:s', $actual_time);
 
//GET Browser
$browser = $_SERVER['HTTP_USER_AGENT'];
    
//LOG
$myFile = "log.txt";
$fh = fopen($myFile, 'a+');
$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "\r\n";
fwrite($fh, $stringData);
fclose($fh);
 
//Generate Image (Es. dimesion is 1x1)
$newimage = ImageCreate(1,1);
$grigio = ImageColorAllocate($newimage,255,255,255);
ImageJPEG($newimage);
ImageDestroy($newimage);
    
?>


在此基础上,如果感兴趣可以做进一步优化,比如一旦打开就给自己的邮箱发送一封邮件,甚至将图片的打开的数据存储到数据库中,做一个可视化管理。

使用方法就是在邮箱正文里面插入该图片的html代码即可。


本文》有 0 条评论

留下一个回复