PHP获取发出的邮件是否被查看阅读并记录查看时间浏览器版本等

    选择打赏方式

get-email-status.png

在日常开发中,可能会遇到需要统计谁谁谁在什么时候看了邮件,他是用什么查看的,用来分类用户群体等需求。

有时候或许很想知道该邮件到底有没有被对方看到,但是你不能要求让对方发送回执给你;

所以就需要一些小技巧,这里有个非常有趣的 Api 能够显示对方 IP 地址、记录阅读的实际时间和浏览器类型等等,应该可以满足你的需求

能干些什么?

记录 IP
阅读时间
浏览器类型
写日志
写数据库
更多功能可以自己加…
注意:使用前需要开启对应扩展,生成 img 图片需要的 GD 库,单文件的话所需要的 Mysqli,框架接入的话就简单多了,入库操作就使用自带 ORM 即可。

使用方法:

在你的邮件中加入如下代码,前提是你的邮件需要支持 html 格式内容

<img src="http://yourdomain.com/img.php" style="display:none;">
代码:

<?php
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 = date('Y-m-d H:i:s', time());

// Get Browser
$browser = $_SERVER['HTTP_USER_AGENT'];

// Log
$myFile = dirname(__FILE__). "/logs.txt";
$fh = fopen($myFile, 'a+');
$stringData = $actual_time .' '. $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);
原理

很简单,实际上就是加入一个 1*1 的小图标,隐藏掉,当某人打开邮件的时候就会请求改图片的 url,做好对应的参数获取即可

写在最后。部分邮箱可能会对这种进行拦截,如果被举报过多可能会进入垃圾箱中~

版权声明:若无特殊注明,本文为《小傲世》原创,转载请保留文章出处。
本文链接:https://pjax.vip/205.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

呵呵 哈哈 吐舌 开心 笑眼 可怜 乖 啊 你懂得 不高兴 生气 汗 黑线 哭 真棒 阴险 鄙视 酷 滑稽 纳尼 疑问 委屈 惊讶 勉强

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!