Hvordan sporer jeg mail jeg sender ud

Når man udsender en masse mails, er det rart at være i stand til at se om indholdet bliver læst, og også hvem der læser det. Vi kan ikke køre noget javascript, så vores eneste mulighed er at indsætte et lille billede i mailen. Hvis brugeren vælger at vise billeder er han solgt.

Det billede vil nemlig eksekvere noget server-kode – i det her tilfælde noget PHP. Det er ikke særligt kønt med et billede, der hedder noget med .php, så vi laver et lille trick først…

Forestil dig følgende PNG-billede er indsat i den mail du sender ud. Brugeren kan nemt genkendes på: user=1234.

<img src="https://mydomain/wild_flowers.png?user=1234">

For at få kaldt vores lille php-script, kan vi tilføje to små sætninger i .htaccess:

RewriteEngine On
RewriteRule wild_flowers.png open_mail_register.php [QSA,L]

QSA (query string append), er et vigtigt direktiv, der betyder at variablen user=1234 bliver lagt til den endelige forspørgsel. Altså vil bliver følgende fil efterspurgt på serveren:

open_mail_register.php?user=1234

Hvis vi har scriptet: open_mail_register.php liggende ude i roden på serveren, vil php-filen blive eksekveret med $_GET[‘user’] = 1234.

Vi kunne nu vælge at returnere noget ligegyldigt grafik, fx

<?
$user = $_GET['user'];
// DO SOMETHING WITH THIS INFO

$im = imagecreatetruecolor(4, 4);
$c = imagecolorallocatealpha($im, 255, 255, 255, 127);
imagefill($im, 0, 0, $c);
header('Content-Type: image/png');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
imagepng($im);
?>

Og så gemmer vi blot i databasen eller en fil at 1234 har åbnet sin mail.

Computerworld bruger fx. denne metode, når de sender mails rundt, dog gider de ikke bruge tid på .htaccess-tricket og bestiller blot en .php-fil:

<img src=3D"http://track.computerworld.dk/track/open.php?u=3D30077844&id=3D=
c1bb774cc86048faa25ef2d2265fb712" height=3D"1" width=3D"1">

God fornøjelse med tracking 🙂