Tom: Formmailer

Beitrag lesen

Hello,

ich habe mir jetzt zwar nicht die Links angeschaut, aber im Prinzip funktioniert das folgendermaßen:

Du hast ein Formular, in dem die Texte und Daten und das Uploadfile erfasst werden.
Im action-Attribut richtest Du das an ein Script, dass die Paramter als Post-Variablen auswertet.
Das kann dasselbe Script sein, denn Dank des benannten submit-Button kannst Du ja feststellen, was der Request vom Script verlangt.

Du überprüfst die Daten, insbesondere die Felder, die später im Header der Mime-Mail[1] landen. Im "To:" und im "From:" Feld könnten z.B. Injectionen[2] enthalten sein. Daher sollte man prüfen, onb da auch nur genau eine gültige email-Adresse gepostet wurde.

Das hochgeladene Bild wird erstmal in eine Variable übertragen. Dazu kann man file_get_contents() benutzen. Diese Variable wird dann mit base64() codiert und alle 76 Zeichen mit "\n" umgebrochen. Hierfür steht die Funktion http://de2.php.net/manual/de/function.chunk-split.php, die aber per default das falsche Umbruchzeichen verwendet.[3]

Nun hast Du alle Bausteine beisammen und musst sie nur noch zusammenbauen.

Dazu erzeugst Du Dir mit dem Mailclient Deines Vertrauens einfach mal eine gaaanz einfach eMail (Nur Text, nicht HTML!) und schaust dann in den generierten Quellcode rein, was da entstanden ist. Un dann baust Du eine Textmail mit einem ganz kleinen Bild drin, und schaust Dir an, wie das zusammengabut wird. Du wirst entdecken, dass durch die Angabe von "mutipart/related" und sogenannte Boundaries die Teile voneinander getrennt werden. Das kannst Du auch mit Hilfe von PHP so zusammenbauen.

Wichtig ist noch, dass der Mailbody nach zwei Zeilenschaltungen hintereinander (Leerzeile) beginnt, dass Header immer nur durch eine Zeilenschaltung voneinander getrennt werden.

Die meisten der Header, die in einer Outlook-Express-Mail vorkommen, kannst Du in deinem Mailgenarator auch weglassen.

Ich hoffe, dass ich Dir mit dieser "Bauanleitung" besser weiterhelfen konnte, als wenn ich Dir noch ein fertiges Script geschickt hätte.

[1] suche einfach mal im Forum unter dem Stichwort "Mime Mail"
[2] Über injectionen können Insider und Spielkinder deinen Mimemailer zu einer Spamschleuder
    vergewaltuigen, wenn Du nicht alle Steuerdaten (Header-Daten) vorher genau überprüfst.
[3] Bei base64-Codierung in einer Mail muss als Umbruch das "\n"-Zeichen und NICHT das
    "\r\n"- Zeichen verwendet werden

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau