Я написал PHP-скрипт для создания пикселя отслеживания, который будет прикреплен к подписи Gmail на основе этот ответ.
<?php
ignore_user_abort(true);
// turn off gzip compression
if ( function_exists( 'apache_setenv' ) ) {
apache_setenv( 'no-gzip', 1 );
}
ini_set('zlib.output_compression', 0);
// turn on output buffering if necessary
if (ob_get_level() == 0) {
ob_start();
}
// removing any content encoding like gzip etc.
header('Content-encoding: none', true);
//check to ses if request is a POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// the GIF should not be POSTed to, so do nothing...
echo ' ';
} else {
// return 1x1 pixel transparent gif
header("Content-type: image/gif");
// needed to avoid cache time on browser side
header("Content-Length: 42");
header("Cache-Control: private, no-cache, no-cache=Set-Cookie, proxy-revalidate");
header("Expires: Wed, 11 Jan 2000 12:59:00 GMT");
header("Last-Modified: Wed, 11 Jan 2006 12:59:00 GMT");
header("Pragma: no-cache");
echo sprintf('%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%',71,73,70,56,57,97,1,0,1,0,128,255,0,192,192,192,0,0,0,33,249,4,1,0,0,0,0,44,0,0,0,0,1,0,1,0,0,2,2,68,1,0,59);
}
// flush all output buffers. No reason to make the user wait for OWA.
ob_flush();
flush();
ob_end_flush();
$ip = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$useragent = $_SERVER['HTTP_USER_AGENT'];
// $browser = get_browser(null, true);$dbhost='MY_HOST';
$usr='MY_USR';
$pwd='****';
$conn = mysqli_connect($dbhost,$usr,$pwd,"dbname");
if($conn->connect_error){
die("connection failed".$conn->connect_error);
}
$sql = "insert into track(serverip,uagent) values('$ip','$useragent')";
mysqli_query($conn,$sql);
die(mysqli_error($conn));
Код работает хорошо, как и ожидалось. Я хочу, чтобы пользователь прочитал / открыл только две вещи и отметку времени. Этот код был доступен через мой сервер, например: https://my_server.com/track/pixel.php
, Чтобы проверить, я добавил эту ссылку в Gmail знак с тегом img.
Теперь проблема в том, что когда я открываю письмо для написания письма, код запускается в фоновом режиме (очевидно, так и должно быть). Поэтому мой вопрос: как я могу обойти и создать идеальное решение для достижения моей цели. В дополнение к этому, любая другая идея будет высоко ценится
Задача ещё не решена.
Других решений пока нет …