2013-12-22 7 views

Antwort

14

Der einzige Weg, ich kenne - und es ist nicht sehr zuverlässig - ist eine HTML-Mail, in der Sie so etwas wie gehörst zu senden:

PHP-Code:

<img src='http://www.domain.com/mailcheck.php?user=123'> 

Bild aber in dem Prozess, Sie können den GET-Benutzer verfolgen. Sie können auch einen Weg finden, den Mail-Header zu ändern, um eine Quittung anzufordern - aber ich weiß nicht, wie das geht - und es ist auch nicht zuverlässig, weil die Anfrage freiwillig ist.

+3

Wie Sie sagten, es ist nicht sehr zuverlässig. Auch das ist subversiv. Ich würde E-Mails nicht trauen, dass solche Tricks mich verfolgen. –

4

Einfach setzen Sie ein PHP-Skript auf, das ein 1x1 Bild zurückgibt. Lassen Sie dieses Skript den Benutzer-Agent und die IP protokollieren (Sie können den Referrer sogar protokollieren).

Jetzt bette das in die E-Mail ein.

Da Gmail das Image immer gestartet hat, aber es von seinen eigenen Servern hostet, können Sie zwar herausfinden, ob die E-Mail geöffnet ist, aber möglicherweise nicht in der Lage sein, die richtige IP zu verfolgen. Überprüfen Sie einige Referenz hier: Effect of gmail caching and showing images by default

Sie erhalten kann wissen, wie MailChimp tut es: MailChimp Working

EDIT: -Code-Referenz:

<img src="http://www.example.com/checkopen.php?user_id=20" /> 

Im Inneren des checkopen.php Skript, das user_id Feld bekommen, jetzt entsprechende Speichern Sie in diesem Feld, dass dieser Benutzer die Mail geöffnet hat.

Achten Sie beim Senden der E-Mail darauf, dass Sie das Feld user_id bei jedem Senden der E-Mail inkrementieren.

Wenn also dieses Bild gerendert wird, ruft es die entsprechende URL auf und Sie können sich in Ihrem System über den Status der geöffneten Mail anmelden.

+1

Nicht jeder benutzt GMail – Quentin

+0

Nun, in den Fällen, in denen Menschen, die Sie immer noch die korrekte IP-Adresse bekommen können nicht Google Mail verwenden. –

+2

Nicht, wenn die Bilder blockiert sind (was die meisten Clients standardmäßig tun) – Quentin

2

E-Mail hat eine disposition notification field, die Sie verwenden können, um dies zu erreichen. Es hängt natürlich vom MUA am entfernten Ende ab. Sie sind frei, die MDN zu ignorieren (was eher eine höfliche Anfrage als etwas Subversives ist, was die anderen 2 Antworten nahelegen). Die MUA Ihres letzten Empfängers sendet Ihnen eine E-Mail zurück, die besagt, dass Ihre Nachricht gelesen wurde. Ihr SMTP-Server kann diese filtern, und Sie können eine Art Programm ausführen, das gesendete E-Mails Antworten zuordnet.

Ich bin sehr gegen das Einbetten kleiner HTML-Snippets, die das Tracking von Benutzern ermöglichen.

0

Während ich nicht genau herausgefunden habe, warum die einfache PHP-Datei das enthaltene Bild nicht erzeugte, gibt es hier eine weitere sehr komplizierte Möglichkeit, eine Bilddatei zu erzeugen, die nicht von meinem eigenen PHP 5.4.30 Webserver abgelehnt wurde.

Hier ist der Code, den ich in einen Index eingegeben habe.PHP-Datei innerhalb eines/email_image/Unterverzeichnis:

<?php 
$message_id = $_REQUEST['message_id']; 

$graphic_http = 'http://mywebsite.com/email_image/message_open_tracking.gif'; 

$filesize = filesize('message_open_tracking.gif'); 

header('Pragma: public'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Cache-Control: private',false); 
header('Content-Disposition: attachment; filename="a_unique_image_name_' . $message_id . '.gif"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: '.$filesize); 
readfile($graphic_http); 
exit; 
?> 

Für die Bilddateinamen, habe ich folgendes:

http://mywebsite.com/email_image/?message_id=12345 

Im email_image Ordner ist auch ein leeres 1x1 gif Bild mit dem Namen "message_open_tracking.gif" .

Die Datei index.php kann auch überarbeitet werden, um die message_id zu verwenden, um diese Nachricht als gelesen zu markieren. Wenn andere Variablen in der Querystring enthalten sind, wie die E-Mail-Adresse des Empfängers, können diese Werte auch innerhalb dieser index.php-Datei verwendet werden.

Vielen Dank an Bennett Stein für den folgenden Artikel: http://www.phpdevtips.com/2013/06/email-open-tracking-with-php-and-mysql/