email versand mit antwort

Marco-P

Erfahrenes Mitglied
Hallo Leute habe da eine knifflige frage, aber es gibt bestimmt eine schöne Lösung.

Ich versende E-mails an meine Bekannten zur Terminabsprache.
Jetzt wie weiß ich das er die Email bekommen hat?
Also ich hätte gerne eine Rückmeldung oder Sendebericht.
Das sollte es doch geben.

Bei der funktion mail() da denke ich mal nicht aber vielleicht gibt es da auch ein hintertürchen.


MFG Marco
 

Oliver Gierke

Erfahrenes Mitglied
Kurz: wirklich verlässlich geht es nicht. Die einfachste Variante ist, alle Emails als angekommen anzunehmen, für die es keinen Daemon gibt. Eine etwas intelligentere (aus dem Spambereich) ist, eine HTML mail zu versenden, die eine Grafik enthält (es reicht ein 1 Pixel Spacer gif). Der Link zur Grafik enhält an der URL einen Parameter, der die Email identifiziert. Schaut der Empfänger die Mail an, lädt der Client (hoffentlich / hoffentlich nicht - je nach Standpunkt) das "Bild" und der Server kann über den Parameter erkennen welche Email gerade angezeigt wird.

Arger Hack, aber er funktioniert. Vorrausgesetzt im Client ist das Laden der Bilder aktiviert. Alles andere ist quasi unmöglich, da nicht wirklich zuverlässig. SMTP ist halt inherent asynchron.

Gruß
Ollie
 

Marco-P

Erfahrenes Mitglied
Ah das mit dem Bild gefällt mir schon gut.

Ich mach dann ja für jede Email eine Datei. Wobei jedes Bild eine eigene Nummer bekommt.
Wie kann ich dann aber herausfinden wann das Bild geöffnet worden ist?

MFG Marco
 

zyro

Mitglied
Wieso denn für jede Adresse eine Datei? Das ist nicht notwendig.
Du erstellst einfach eine php-Datei, die einen Parameter mit der Email-Adresse bekommt und schreibst dann z.B. in eine DB, ob die Mail gelesen wurde. Das ganze verpackst Du in ein Bildtag (natürlich solltest Du auch dann noch ein Bild 1*1px ausgeben) und die Sache funktioniert. Problem ist nur wirklich, wie mein vorganger bereits sagte, dass viele Email-Clients das nachladen von Bildern unterdrücken.
 

Marco-P

Erfahrenes Mitglied
zumindest finde ich so heraus ob sich jemand meine Email auch angeschaut hat.

Aber wie das genau funktioniert habe ich noch nicht ganz verstanden.
Wenn das Bild geladen wird, wird das in der Log Datei vermerkt. Aber wenn doch alle das gleiche Bild hochladen kann ich es gar nicht zuordnen.
 

zyro

Mitglied
Nein, nix mit Log-Datei ;-)
Du bastelst dir ne php-Datei alá:

PHP:
//Hier das was wirklich nötig ist...

$email = mysql_real_escape_string($_GET['email']);

mysql_query("UPDATE email_db SET gelesen = '1' WHERE email = '".$email."' LIMIT 1");


// Und hier zur Schönheit

$verzeichnis = opendir("http://www.domain.de/dein_verzeichnis");
$file = "dein_verzeichnis/bild.jpg";

header("Content-type: image/jpeg"); 

readfile($file);
closedir($verzeichnis);

und in deiner Email schreibts du irgendwo am Ende einfach:

HTML:
<img src="http://www.domain.de/bild.php?email=email@adressate.de" />
 

Marco-P

Erfahrenes Mitglied
Das ist ja richtig hinterlistig.
Na da wird sie wahrscheinlich an so manchem Spamfilter hängen bleiben.
Ich probier es mal aus.

Ich würde sagen das Thema ist Erledigt
 

Dennis Wronka

Soulcollector
Das mit dem Bild ist meiner Meinung nach genauso unzuverlaessig wie der Header Disposition-Notification-To, welcher laut Standard fuer eine solche Aufgabe konzipiert wurde.

Beim Bild hast Du das Problem dass der Mail-Client das Bild nicht per Default laden wird, ausser er ist so eingestellt, und zum Glueck ist das bei allen mir bekannten nicht Standard.
Ausserdem brauchst Du dafuer HTML-Mails, welche auch nicht immer gern gesehen sind.

Beim Einsatz des ordnungsgemaessen Headers hast Du wiederum das Problem dass dieser von Clients ignoriert werden kann (schlecht fuer Dich; Default bei KMail), der User gefragt wird ob er eine solche Nachricht versenden will (evtl. nervig fuer den User; wenn ich mich nicht irre Default bei Thunderbird) oder eben automatisch diese Nachricht geschickt wird (gut fuer Dich; keine Ahnung ob das jemand macht, wahrscheinlich Outlook...).

Also, wirklich zuverlaessig geht es eh nicht. Ich persoenlich tendiere aber zum Header allein weil er Teil des Standards ist.