Formmailer
junet
- php
Hallo Leute,
wer kann mir helfen???? Ich möchte einem Formular einen Datei-Upload hinzufügen und dies dann mit dem Formmailer als Anhang eine e-mail hängen!!!
Das Formular ist nicht das Problem ich weiß nur nicht was ich dem Formmailer anfügen muss um dies möglich zu machen!!!
Sopnnige Grüße aus Bremen.....
Junet
hi,
Das Formular ist nicht das Problem ich weiß nur nicht was ich dem Formmailer anfügen muss um dies möglich zu machen!!!
http://dclp-faq.de/q/q-formular-upload-php4.html
http://www.dclp-faq.de/q/q-mail-attachment.html
gruß,
wahsaga
Hallo wahsaga,
http://dclp-faq.de/q/q-formular-upload-php4.html
http://www.dclp-faq.de/q/q-mail-attachment.html
Kannst Du mir mal erklären, wie Du immer in Sekundenschnelle solche Links ausgräbst?
Deine Link-Sammlung scheint ja besser zu sein als das SELF-Archiv ;-)
Gruß,
Stefan
hi,
http://dclp-faq.de/q/q-formular-upload-php4.html
http://www.dclp-faq.de/q/q-mail-attachment.htmlKannst Du mir mal erklären, wie Du immer in Sekundenschnelle solche Links ausgräbst?
dass dazu was bei der dclp-faq steht, hatte ich im hinterkopf.
dass ich das erste dort im formulare-kapitel finde, wusste ich. und für das zweite, mal eben schnell die suchfunktion dort gefüttert ...
Deine Link-Sammlung scheint ja besser zu sein als das SELF-Archiv ;-)
eine richtige linksammlung habe ich eigentich gar nicht - nicht mal zwei dutzend bookmarks befinden sich in meinen browsern.
(wodurch mir manchmal auch eine gerade erst entdeckte interessante seite schnell wieder entfällt :-/ aber mit dem bookmarken hab ich's einfach nicht so ...)
gruß,
wahsaga
Schön das ihr jetzt ein Gesprächsthema gefunden habt *grins* aber ein klein wenig brauche ich noch Hilfe.... soweit ich das jetzt verstanden habe, muss das script von link eins auf die Seite wo der mailer ist und es wird dort die Postvariable...bzw File E-mail-fertig gemacht.....
Aber wie jetzt weiter??? Werde aus dem 2.Link einfach nicht schlau, versteh nur das ich an die 4.stelle des mailer etwas eigeben muss.... und was??????
Verzeih ich bin wohl doch blond!!!!
Bitte hif m!ir!!!
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
Hello,
Der Content-Type lautet natürlich "multipart/mixed"
Der andere ist hierfür viel zu komplex.
Return-path: thomas@testserver.bitworks ## kann entfallen
Envelope-to: thomas@localhost ## Zieladresse
Received: from pc14.lan.fli4l ([192.168.101.114] helo=PC14) | ## wird vom mailserver eingefügt
by testserver.bitworks with smtp (Exim 3.35 #1 (Debian)) |
id 1BvaDa-0001AW-00 |
for thomas@localhost; Fri, 13 Aug 2004 13:27:30 +0200 |
Message-ID: 001101c48110$eeb4c260$7265a8c0@lan.fli4l ## kannst Du selber festlegen
From: "Thomas" thomas@testserver.bitworks ## sollte vorhanden sein
To: "Thomas" thomas@localhost ## sollte vorhanden sein
Subject: Mime Mail ## sollte vorhanden sein
Date: Fri, 13 Aug 2004 10:38:39 +0200 ## kannst Du selber festlegen
MIME-Version: 1.0 ## wichtig!
Content-Type: multipart/mixed; ## wichtig!
boundary="----=_NextPart_000_000F_01C48121.B21C00A0" ## musst Du auswürfeln [1]
## Leerzeile beendet Header
This is a multi-part message in MIME format.
------=_NextPart_000_000F_01C48121.B21C00A0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hier das Bild
Gef=E4llt es Dir?
------=_NextPart_000_000F_01C48121.B21C00A0
Content-Type: image/png;
name="fisch.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="fisch.png"
iVBORw0KGgoAAAANSUhEUgAAAC8AAAAcCAMAAADGFxadAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABgUExURSgVBHhCAF9dW41PAf///z07OTsg
Ao2OjlQtAausrUGQyteIG/j4+ODg4J+JWcrKyurq6/Hw8BcnMho5T6VcAA4ZITdvlrxpAClVdNR2
...
------=_NextPart_000_000F_01C48121.B21C00A0--
[1] Boundaries werden immer durch zwei führende "--" eingeleitet, zusätzlich zum berechneten Wert und die Ende-Boundary eines Abschnittes hat hinten ebenfalls "--" dranhängen. Du kannst durch die einleitende Boundary beliebig viele Attachments voneinander trennen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom