Eben habe ich mal wieder danach gesucht, warum meine eMails, die ich mit PHP erzeuge, nicht ankommen. Wieder mal wurde der „Absender“ www-data@localhost geblockt, obwohl ich brav Sender und From im Mail-Header angegeben hatte. Nachdem ich das schon zig mal hatte schreibe ich mir jetzt endlich mal auf was da falsch läuft!
Das Problem ist zweigeteilt, nämlich in User „www-data“ und Host „localhost“ Teil. Wenn ich PHP richtig verstanden habe, dann führt der www-data User unter dem der Apache läuft durch PHP das sendmail Programm zu versenden aus. Damit erklärt sich der User Teil. Ist nun der MTA nicht richtig konfiguriert, so wird halt einfach der Default „localhost“ angehängt.
Die Lösung besteht daher auch aus 2 Schritten. Erstens sollte für den www-data User eine vernünftige eMail-Adresse hinterlegt werden. D.h. immer wenn dieser eine eMail verfasst sollte seine Adresse durch eine andere ersetzt werden. Das geht einfach über die canonical Tabelle von Postfix. Dazu muss in der main.cf folgendes eingetragen werden:
canonical_maps = hash:/etc/postfix/canonical
Und in dieser Datei dann etwas wie:
www-data postmaster@it4sport.de
Anschließend noch die Tabelle postfix bekanntmachen:
postfix reload
postmap /etc/postfix/canonical
Fertig ist der erste Teil.
Der Hostteil liegt einfach daran, dass weder myhostname noch mydomain innerhalb der main.cf ordentlich konfiguriert sind.
Hoffentlich merk ich mir das jetzt endlich mal.