Formmailer + Dateianhang
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attachment
auszug
beitrag
betreff
coding
date
datei
disposition
dune
encoding
format
formen
klasse
mail
mailadresse
message
mimen
please
uhr
-
Also folgendes Problem:
Ich habe einen Formmailer gebastelt. Ich m?chte aber noch einen Dateiupload dazu haben. Die formmail.php sieht wie folgt aus:
<form action="senden.php" target="_kontakt" method="post"> <table> <tr> <td valign="top">Name:</td> <td><input type="text" name="name" maxlength="64" size="39"></td> </tr> <tr><td valign="top">E-Mailadresse:</td> <td><input type="text" name="emailadresse" maxlength="64" size="39"></td></tr> <tr> <td valign="top">Betreff:</td> <td><input type="text" name="betreff" maxlength="64" size="39"></td> </tr> <tr> <td valign="top">Ihre Nachricht:</td> <td><textarea name="nachricht" cols="40" rows="9"></textarea></td> </tr> <tr> <td valign="top">Datei anh?ngen:</td> <td colspan="4"><input type="file" name="mm_file"></td> </tr> <tr><td>Abschicken?</td> <td><input type="Submit" value="verschicken"></td></tr> </table></form>
Die senden.php sieht so aus:
<?php $emailadresse = (!empty($_POST['emailadresse'])) ? $_POST['emailadresse'] : 'maildeamon@xxxx.de'; $betreff = (!empty($_POST['betreff'])) ? $_POST['betreff'] : ''; $bruch = "\r\n"; $str = '__________________________________________________'; $date = getdate(); $nachricht = (!empty($_POST['nachricht'])) ? $_POST['nachricht'] : ''; if ($nachricht == '') { echo 'Bitte geben Sie eine Nachricht ein.'; } else { mail('xxx@xxx.de', '[Mail] ' . $betreff, 'Name: ' . $name . $bruch . 'Betreff: ' . $betreff . $bruch . 'Am: ' . $date["mday"] .".". $date["mon"] .".". $date["year"] . ' | Um: ' . $date["hours"] ." Uhr ". $date["minutes"] . $bruch . $str . $bruch. $name . ' teilt ihnen folgendes mit: ' . $bruch . $bruch . $nachricht, 'From: ' . $emailadresse); echo 'Die Nachricht wurde verschickt.'; } ?>
Wie muss ich den Dateianhang in die senden.php einbauen, sodass die angeh?ngt datei aus formmail.php mitgesendet wird?
Hatte da ein bisschen rumprobiert, kam aber auf keinen Gr?nen Zweig :(
Please Help -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst auf jeden Fall eine Multipart-Nachricht erzeugen. Am besten, du schaust dir mal Quelltexte von Mails mit ANhang an.
Ich hatte mal angefangen eine Mail-Klasse zu schreiben. MAl ein Auszug daraus, der dir helfen k?nnte:
function add_attachment($att,$type,$filename,$charset="ISO-8859-1") { $att = chunk_split(base64_encode($att),72,"\n"); $this->addbody("Content-Transfer-Encoding: base64\n"); $this->addbody("Content-Type: $type;\n name=\"$filename\"\n"); $this->addbody("Content-Disposition: attachment;\n filename=\"$filename\"\n"); $this->addbody("\n"); $this->addbody("$att"); $this->addbody("\n"); $this->addbody("--{$this->boundary}\n"); }
Edit: Du musst nat?rlich noch definieren, dass es eine Multipart-NAcricht ist:
elseif ($type == "multipart") { $this->boundary .= "nextpart_".md5(time()); $this->addheader("Mime-Version","1.0"); $this->addheader("Content-Type","multipart/mixed;\n boundary=\"".$this->boundary."\""); $this->addbody("This is a multipart message in mime format.\n\n");
Beitrag ge?ndert am 23.03.2006 17:21 von phattek -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage