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

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

phpmianshi4个月前 (08-12)php234

背景

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

⽹站信标和像素标签

除 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搭建TP5.1+Swoole3.5.15环境

安装首先按照Swoole官网说明安装swoole扩展,推荐新手可以直接使用pecl install swoole#会安装最新的稳定版(截至本文发布最新版本是4.0.3版本)或者源码...

php中Memcache::get(): Server...failed with: Failed reading line from stream

背景最近sentry报告PHP的memcache客户端php-memcache经常出 现断连接的问题:PHP Notice:  Memcache::get(): Server ………. (t...

PHP7 数组的底层实现

PHP7 数组的底层实现

PHP 数组具有的特性PHP 的数组是一种非常强大灵活的数据类型,在讲它的底层实现之前,先看一下 PHP 的数组都具有哪些特性。可以使用数字或字符串作为数组健值$arr = [1&...

PHP数组实际占用内存大小的分析

1.数组正常的赋值是不会发生内存改变的,但是当赋值的新数组发生改动的时候,php就会新开辟内存给新的数组,这里会造成无谓的内存消耗。最好是不要直接这样赋值,如果非赋值不可的话,记得加上‘&’符...

PHP内核分析之深入理解字符串(七)

一、字符串的结构struct _zend_string {     zend_refcounted_h gc; &nb...

Windows下nginx+fastcgi+php的并发阻塞问题

同事接到一个需求,需要调用同一个项目的另一个接口,于是CURL调用接口。代码撸完了,本地测试一下 浏览器一直转圈圈直到超时…… 百思不得其解主要是windows+nginx开发环境遇到的问题,本人很少...

发表评论

访客

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