de.comp.lang.php.* FAQ

15.13. Wie kann ich den Absender meiner Mail festlegen?

Antwort von Johannes Frömter

Um im Mailprogramm des Empfängers einen bestimmten Absender anzuzeigen, muss in der Mail der From:-Header entsprechend gesetzt sein. Die Funktion mail() nimmt im vierten Parameter solche Header-Angaben entgegen:

mail("empfaenger@example.org",
     "Betrefftext",
     "Hello world!",
     "From: Absender <absender@example.com>");

Eine Mailadresse mit Namen gibt man am besten in der Form Name <Adresse> an. Weitere Headerzeilen sind durch \r\n zu trennen.

Durch diesen Header wird nur der Absender in der Mail, nicht jedoch der Envelope-From: - quasi die Absenderangabe auf dem "Briefumschlag" der Mail - festgelegt. Nicht zustellbare Mails gehen daher an den Serveradministrator, und nicht an den tatsächlichen Absender zurück.

Seit PHP Version 4.0.5 kennt mail() hierzu einen fünften Parameter, dessen Inhalt direkt an das Mailprogramm weitergereicht wird. Im Falle des üblichen sendmail übergibt man den Absender für das Envelope-From: folgendermaßen:

mail("empfaenger@example.org",
     "Betrefftext",
     "Hello world!",
     "From: Absender <absender@example.com>",
     "-f absender@example.com");

Normalerweise fügt sendmail dann auch ein X-Authentication-Warning in den Header ein; um diese Warnung zu unterdrücken, sollte man den User, unter dessen Account der Webserver läuft, zu den "trusted users" in der sendmail-Konfiguration hinzufügen.

Valid HTML 4.01! Valid CSS!

15.13. Wie kann ich den Absender meiner Mail festlegen?
http://www.php-faq.de/q/q-mail-absender.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team