Hello,
in einem Punkt muss ich deiner ausführlichen Darstellung widersprechen.
Aua! Ja Du hast Recht.
Zum Thema: welche Inhalte gehören wohin?
Attachments gehören in die "additional Headers", nicht in das Message-Argument der mail()-Funktion. Anders lässt sich eine RFC-konforme Mail mit Attachments nicht aufbauen.
Nein! Das ist falsch!
Attachments sind Teil der eigentlichen Nachricht, KEINE Header.
Es ist zwar nicht ganz trivial, solche Mails mit Attachment korrekt zu erstellen, weil die Sub-Parts korrekt markiert sein müssen und jeder wieder eigene, lokale Header hat. Außerdem muss man unter Umständen mit den MIME-Types multipart/mixed, multipart/related und multipart/alternative aufpassen, vor allem wenn das Endprodukt eine HTML-Mail mit eingebundenen Bildern und einem alternativen Plaintext-Teil sein soll.
Aber dennoch gehört das alles in den Message-Teil.
Die Inhalte gehören, sauber in Boundaries verpackt, in den Message-Body. Nur die dazugehörigen (einleitenden) Header gehören selbstverständlich in den Header-Teil.
Da der Message-Teil vom Sendmail-Script auch nicht verändert wird, gelten hier auch echte CRLF (#13#10 oder 0x0D 0x0A) als die richtigen Zeilenendezeichen, was man zum Beispiel bei der Funktion word_wrap() beachten muss. Manche eMail-Clients können sonst die base64-codierten Teile, die mit word_wrap() und dem falschen EOL umgegbrochen wurden nicht wieder decodieren.
Nochmal danke für Deinen wichtigen Hinweis.
Jetzt sollten wir also alles beisammen haben, oder? Wäre also an der Zeit, das SelfHTML-Beispiel zu renovieren. Gib mir nur nicht sofort das <I>, ich habe noch eine Baustelle offen...
Aber ich würde mich an einem Wiki-Artikel zu (mehreren, von ganz einfach bis komplex) Form-Mailern beteiligen, wenn sich jemand berufen fühlte, den zu beginnen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg