EMail-Autoresponder

Wer kennt das nicht: Nachem man sich irgendwo registriert hat, Kontakt mit dem Support angefordert oder einen Newsletter abonniert hat, erhält man meistens eine automatisch generierte Mail mit Danksagungen oder Ankündigungen, dass der Support ein paar Tage zur Beantwortung braucht… oder ein paar Wochen.

Wer auf seinen Seiten ein PHP-basiertes Kontaktformular verwendet, kann dies auf einfach Weise um eine solche Auto-Antwort ergänzen. Das eignet sich auch super für eine Abwesenheitsnotiz währen des Urlaubes.

Schritt 1: Responder-Text erstellen

Zunächst legt man eine Textdatei mit dem Inhalt der automatischen Antwort an und speichert sie auf dem Webserver – der Einfachheit halber am besten im selben Verzeichnis in dem das normale EMail-Skript abgelegt ist. Als Dateiname empfiehlt sich z.B. „responder.txt“.

Der Inhalt dieser Textdatei könnte zum Beispiel sein:

Vielen Dank für Deine Mail.
Deine eMail-Adresse wurde in unseren Newsletter-Verteiler aufgenommen.

Wenn Du den Newsletter nicht mehr erhalten möchtest, sende bitte eine Mail an:
unsubscribe(at)irgendwas(dot)com

Schritt 2: Autoresponder einfügen

Nun geht es daran, die automatische Antwortmail zu generieren. Hierzu öffnet man das bestehende Mailskript, welches z.B. so aussehen könnte (nur als Beispiel – nicht für den Produktiveinsatz geeignet, da Eingaben nicht gecleant werden – siehe auch Anti-Header-Injection):

$betreff=$_POST['betreff'];
$email=$_POST['email'];
$message=$_POST['message'];
$message=rawurldecode($message);
$message=str_replace("+", " ", $message);

mail("meinemail@irgendeinserver.de", "$betreff", $message, 
"From: $email\nReply-To: $email\nX-Mailer: PHP/" . phpversion(). "\nCC:");

Nachdem nun die Mail auf dem Weg ist, geht es nun daran, die automatische Mail an den Besucher der Site zu generieren. Hierfür wird zunächst die zuvor erstelle Textdatei „responder.txt“ via PHP geöffnet, gelesen und anschliessend der Inhalt an den Absender ($email) gesendet:

// ... hier steht euer bisheriges Sende-Skript ...

//AUTORESPONDER
//Dateizeiger erstellen
$responderfile = "responder.txt";

//Datei oeffnen
$fd = fopen( $responderfile, "r" );

//Datei auslesen - Inhalt in $content speichern
$content = fread( $fd, filesize( $responderfile ) );

//Datei schliessen
fclose( $fd );

//Mail versenden
mail( "$email", "Besten Dank!", "$content\n\n",
"From:mail@deinedomain.de\n" );

Selbstverständlich könnte der Text des Autoresponders auch direkt im Skript festgelegt werden – allerdings hat die Auslagerung des Textes in eine externe Datei zwei entscheidende Vorteile:

  • Die Textdaien können auch von unbedarften Usern (z.B. eurem Endkunden) verändert werden, ohne dass ein Eingriff in das Skript nötig ist
  • Die externen Dateien können auch über ein bestehendes CMS bearbeitet werden, was den Komfort natürlich erheblich erhöht

Wer Tips oder Anregungen zur Verbesserung des Autoresponders hat, kann hier einen Kommentar hinterlassen.

Schreibe einen Kommentar