Как определить, читали письмо или нет

Чтобы определить, читали отправленное письмо или нет, можно воспользоваться небольшой хитростью – отправить в письме картинку, которая будут подгружаться с удаленного сервера, и при обращении к этой картинке, можно реализовать вызов счетчика количества просмотров. Для того чтобы при обращении к картинке на сервере выполнялся скрипт можно воспользоваться apache модулем
mod_rewrite
. Он позволит реализовать редирект с картинки на скрипт. Для этого достаточно добавить в корень сайта файл
.htaccess
с кодом:
<IfModule mod_rewrite.c> 
      RewriteEngine on 
      RewriteRule ([[:alnum:]]+).png$ img.php?em=$1 [L] 
</IfModule>

Таким образом, при обращении к картинке с адресом:
<img src="http://site.ru/dGVzdEBtYWlsLnJ1.png"/>

будет вызван скрипт http://site.ru/img.php?em=dGVzdEBtYWlsLnJ1
Как вы уже наверняка обратили внимание, помимо вызова самого скрипта, происходит передача GET параметра em – имя картинки. Это сделано специально, с помощью этого параметра можно передавать любую необходимую информацию, например e-mail адрес получателя письма. В данном примере это закодированный, с помощью
base64
, e-mail получателя. Остается только написать скрипт, который будет обрабатывать обращения и возвращать в ответ картинку и записывать статистику обращений:
// генерируем картинку и отдаем ее  
// создаем холст 1 на 1 пиксель 
$image = imagecreatetruecolor(1,1);  
// делаем его белым 
imagefill($image, 0, 0, 0xFFFFFF);  
// задаем заголовок для вывода картинки 
header('Content-type: image/png');  
// выводим картинку 
imagepng($image);  
// очищаем память от картинки 
imagedestroy($image);  
  
// проверяем наличие GET параметра 
if(isset($_GET['em'])){ 
  // получили email пользователя,  
// который открыл письмо 
  // раскодирем данные 
    $email = base64_decode($_GET['em']);  
     
  // тут реализуем запись статистики 
  // в файл или базу данных   
}

В рецепте был использован код для генерации картинки, об этом подробнее написано в V части сборника рецептов(«Графика»). Также была использована ранее не описанная функция
base64_decode
, она осуществляет декодирование данных закодированных с помощью функции
base64_encode
в формат
base64.
Теги:
mod_rewrite, .htaccess, base64, base64_decode, base64_encode
Добавлено: 30 Марта 2018 07:15:50 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...