当前位置:首页 > php > 正文内容

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

phpmianshi1个月前 (08-12)php83

背景

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

⽹站信标和像素标签

除 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代码即可。


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

从0到1搭建基于swoole的websocket服务

源码安装wget  https://github.com/swoole/swoole-src/archive/v4.5.7.tar.gz tar -xzvf ...

PHP7的垃圾回收机制

PHP7的垃圾回收机制

垃圾回收机制垃圾回收机制是一种动态存储分配方案。它会自动释放程序不再需要的已分配的内存块。 自动回收内存的过程叫垃圾收集。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻...

PHP中 array_walk array_map array_filter区别

array_walk:array_walk — 使用用户自定义函数对数组中的每个元素做回调处理1. 用户自定义的函数处理每一个元素2. 直接修改原数组,不会创建新的数组3. 可以传递额外的参数更多信息...

php中autoload机制详解

背景PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一...

php闭包的优缺点

闭包函数:临时创建一个没有名称的函数,经常作为回调函数来用。通俗的说就是:子函数可以使用父函数中的局部变量,这种行为叫做闭包。我的理解是: 闭包就是能够读取其他函数内部变量的函数。匿名函数赋...

通过 PHP OPcache 让你的 Laravel 应用运行速度飞起来

Laravel 优化介绍:https://segmentfault.com/a/11900000115690121.缓存配置信息 php artisan config:cache2.缓存路由信息 ph...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。