Hello,
Fehler #1: Headerzeilen werden in Mails mit \r\n abgeschlossen, nicht mit einem einfachen \n. Manche Mailserver und viele sendmail-Implementierungen sind da aber großzügig, so dass das nicht unbedingt zum Versagen führen muss.
Fehlerhafter Tipp:
Ohne Rückfrage danach, womit die Mail auf den Weg geschickt wird, kann man nichts über die __in_PHP_notwendigen__ Headerendezeichen sagen.
Wird die Mail mittels sendmail-Script auf einem Linux-Host versendet, ist es in einem Teil notwendig , nur \n zu verwenden, in der ganzen Mail aber möglich. In den "echten" Headerzeilen wandelt PHP das dann sowieso in \n um, denn so will es das Sendmail-Script haben, um dann selber wieder ganz stumpf aus jedem \ UND aus jedem \r ein \r\n zu machen.
Im wweiteren Verlauf der Mail greift PHP aber nicht mehr ein, sodass der Programmierer daran denken muss, mur \n zu verwenden. Das ist besonders auch bei wordwrap() für base64-codierte Teile zu beachten.
Nur, wenn die Mail von PHP direkt an den MTA übergeben wird, also i.d.R. über Port 25 an den smtp-Daemon (so wie auf WinDOSen), dann muss man gelich die richtigen Zeilenbegrenzer benutzen, also \r\n. Da greift kein "korrigierendes" Script mehr ein.
Auf jeden Fall sollte ein PHP-Administrator-User das Verhalten seines Systems überprüfen, bevor er sich wundert, warum die Mails nicht transportiert werden. Hängen bleiben können die auf der ganzen Strecke...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg