Nếu bạn dùng PHP để gửi nhận mail ,thì có lẽ bạn cũng sẽ muốn biết liệu mail mà bạn gửi đã được đọc hay chưa ? Vậy làm sao để biết được điều đó ?
Hôm nay mình xin chia sẻ cho các bạn đoạn code bằng PHP , đoạn code này sẽ giúp chúng ta nhận biết được người nhận mail đã mở mail ra xem. Bằng cách nhúng vào nội dung gửi mail một đoạn HTML như sau:
<img src="http://www.yourhost.com/image.php">
Như các bạn đã thấy, đoạn code trên thực chất chỉ là file hình, nhưng file hình này sẽ được tạo ra khi người nhận mở mail ra xem, và thông tin trên máy người nhận như thời gian tại thời điểm người đó mở mail và địa chỉ IP sẽ được lưu trữ tại file log.txt. Nếu các bạn chưa rõ về cách gửi nhận mail bằng PHP thì có thể tham khảo bài viết Hướng dẫn toàn tập về gửi nhận mail bằng PHP .
Việc các bạn cần làm bây giờ là tạo một file mới và đặt tên là image.php, sau đó copy toàn bộ đoạn code bên dưới và dán nó vào .
<?
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);
?>
Bây giờ , các bạn tạo thêm một file mới là log.txt rồi upload cả 2 file này lên host của các bạn. Nhớ thay đổi đường dẫn đến file này cho phù hợp với nội dung trong mail của các bạn.
Nếu các bạn còn thắc mắc điều gì thì đừng ngần ngại để lời lời nhắn dưới dạng comment.