E-Mails mit PHP versenden
Sonntag, 11. März 2007 | Autor: Pr0g
Dieser Artikel erklärt, wie man mit Hilfe der Funktion mail() in PHP E-Mails versenden kann.
E-Mails können neben reinem Text auch HTML-Code und Dateien als Anhang beinhalten. Diese Möglichkeiten werden Schritt für Schritt in eine eigene E-Mail Funktion namens SendMail() integriert.
Text E-Mails versenden
Als Basis für unsere E-Mail Funktion nehmen wir das Versenden von reinen Text E-Mails. Die mail() Funktion von PHP erwartet für unser Vorhaben vier Parameter:
<?php
mail($to, $subject, $message, $header);
?>
- $to: Die E-Mailadresse des Empfängers unserer E-Mail, bspw. “test@domain.de”. Neben der Adresse kann auch noch der Name des Empfängers angegeben werden, dies würde dann so aussehen: “Max Muster <test@domain.de>”. Das kann jedoch bei manchen Servern zu einem Problem beim Senden der E-Mail führen, daher vorher testen! Soll die E-Mail an mehrere Empfänger gesendet werden, so können diese hintereinander (per Komma getrennt) angegeben werden.
- $subject: Der Betreff der E-Mail, dieser darf keine Zeilenumbrüche enthalten!
- $message: Die eigentliche Nachricht der E-Mail. Zeilenumbrüche müssen durch ein LF-Zeichen (\n) getrennt werden und einzelne Zeilen sollten nicht länger als 70 Zeichen sein.
- $header: Der Header enthält zusätzliche Informationen zur E-Mail. In ihm werden wir unsere Absenderadresse angeben, damit der Empfänger eine Antwortmöglichkeit hat. Die Angabe eines Absenders ist erforderlich, sonst kann es passieren, dass die E-Mail nicht versendet wird! Da ein möglicher Spambot den Absender nutzen könnte, um den Header so zu manipulieren, dass die E-Mail an mehrere andere Empfänger gesendet wird, muss die Absenderadresse zuvor durch einen regulären Ausdruck auf Gültigkeit geprüft werden. Optional kann auch noch eine extra Antwortadresse angegeben werden, falls der Empfänger seine Antwort an eine andere E-Mailadresse als die Absenderadresse schicken soll. Genauso wie bei den E-Mailadresse im $to Parameter kann auch im Header der Name mit angegeben werden, wobei es hier keine Probleme geben sollte.



