Formmailer mit Attachment
Thomas L.
- php
Hallo Forum-Teilnehmer,
ich habe nun schon lange ein (wie ich finde) tolles Kontaktformular mit PHP aufgebaut. Doch nun habe ich festgestellt, dass es sich erforderlich macht, hier Dateien als Anhang mit zu senden. Leider bin ich noch totaler Anfänger in PHP und komme hier einfach nicht weiter. Ich habe schon ewig im Internet gesucht und immer nur neue Scripte gefunden, die ich (noch) nicht verstehe. Ich hoffe, mir kann hier jemand weiter helfen. Unten stehendes Script bitte ich einfach mal durchzusehen. Meine Probleme liegen darin, dass
Wie gesagt habe ich immer nur neue Scripte gefunden. Kennt jemand einen guten Link, bei dem das Upload von Dateien genauer erklärt wird, bzw. eine gute Beschreibung über den header. Welche Angaben können hier denn gemacht werden und wie müssen diese aussehen? Was bedeutet eigentlich MIME?
Ich weiß, ich weiß, das sind Fragen über Fragen! Aber wie bereits mitgeteilt bin ich purer Anfänger und bitte hier um Nachsehen und daher auch um einige Erklärungen zu meinem besseren Verständnis. Schließlich kann man ja nur lernen! :-)
Ach ja, und was sagen denn eigentlich Profis insgesamt zu diesem Formular? ich bin sicher, dass man noch einiges besser machen kann...
Übrigens lautet die Original-URL des Formulars http://www.ff-altenbach.de/kontakt_test3.php
Vielen Dank schon mal für Eure aufschlussreichen Beiträge.
Viele Grüße Thomas L.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Freiwillige Feuerwehr Altenbach - Kontakt</title> </head> <body> <?php
$max_attach_size = 500000; if (isset($loeschen)) { unset($vorname); unset($name); unset($email); unset($strasse); unset($plz); unset($ort); unset($eingabe); unset($file); unset($sent); } if ($sent==1) { $vorname = trim($vorname); $name = trim($name); $email = trim($email); $strasse = trim($strasse); $plz = trim($plz); $ort = trim($ort); $eingabe = trim($eingabe); $eingabe = nl2br($eingabe); $eingabe = stripslashes($eingabe); $eingabe = strip_tags($eingabe,'<a>,<b>,<br>,<strong>,<span>'); if (!$vorname) { echo '<strong>Bitte geben Sie Ihren Vornamen ein.</strong><br>';unset($sent); } if (!$name) { echo '<strong>Bitte geben Sie Ihren Nachnamen ein.</strong><br>'; unset($sent); } if (!$eingabe) { echo '<strong>Bitte geben Sie eine Nachricht ein.</strong><br>';unset($sent); } if ($_FILES['file']['size'] > $max_attach_size) { echo "<strong>Attachment zu groß (".number_format($_FILES['file']['size']/1000,0,",","")." KB) - Maximalgröße: ".number_format($max_attach_size/1000,0,",","")." KB</strong><br>";unset($sent); } if (!$email) { echo '<strong>Bitte geben Sie Ihre E-Mail-Adresse ein.</strong>'; unset($sent); } elseif (!strstr($email,"@") OR !strstr($email,".")) { echo '<strong>Die angegebene E-Mail-Adresse ist ungültig. Bitte korrigieren Sie den Fehler.</strong>'; unset($sent); } elseif($vorname AND $name AND $email AND $eingabe) { $nachr = "<table border="0" id="antwort"> <tr> <td class="rechts">Name:</td> <td>" . $vorname . " " . $name . "</td> </tr> <tr> <td class="rechts">E-Mail:</td> <td>" . $email . "</td> </tr>"; if ($strasse OR $plz OR $ort) { $nachr .= "<tr>\n <td class="rechts">Anschrift:</td>"; if ($strasse) { $strasse = $strasse . "<br>"; $nachr .= " <td>" . $strasse . $plz . " " . $ort . "</td>\n</tr>\n"; } else { $nachr .= " <td>" . $plz . " " . $ort . "</td>\n</tr>\n"; } } $nachr .= "<tr>\n <td class="rechts">Ihre Nachricht:</td>\n"; $nachr .= " <td>" . $eingabe . "</td>\n</tr>"; if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") { $nachr .= "<tr>\n <td class="rechts">Attachment:</td>\n <td>".$_FILES['file']['name']."</td>\n</tr>"; } $nachr .= "</table>\n"; $message="<html><body>"; $message.=$nachr; $message.="</body></html>"; $email_from_name = "$vorname $name"; $email_from = "$email_from_name <$email>"; $email_to = "FF Altenbach info@ff-altenbach.de";
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") { $datei_content = fread(fopen($_FILES['file']['tmp_name'],"r"),filesize($_FILES['file']['tmp_name'])); $datei_content = chunk_split(base64_encode($datei_content),76,"\n"); // Boundary: $boundary = md5(uniqid(rand())); // Mail-Header: $header = "From: FF Altenbach Mail-Service post@ff-altenbach.de\n"; $header .= "X-Sender-IP: $REMOTE_ADDR\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: multipart/mixed; boundary="".$boundary.""\n"; $header .= "This is a multi-part message in MIME format.\n"; // Mail-Text: $header .= "--".$boundary; $header .= "\nContent-Type: text/html"; $header .= "\nContent-Transfer-Encoding: 8bit"; $header .= "\n\n".$message; // Attachment: $mail_header .= "\n--".$boundary; $mail_header .= "\nContent-Type: ".$_FILES['file']['type']."; name="".$_FILES['file']['name']."""; $mail_header .= "\nContent-Transfer-Encoding: base64"; $mail_header .= "\nContent-Disposition: attachment; filename="".$_FILES['file']['name']."""; $mail_header .= "\n\n".$datei_content; // Ende: $header .= "\n--".$boundary."--"; // Sende E-Mail und gebe Fehler bzw. Bestaetigung aus if (mail($email_to,"Eine E-Mail von meiner Webseite","",$header)) { if ($kopie==on) { $header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n"; $header .= "Reply-To: $email\n"; $header .= "X-Mailer: PHP/" . phpversion(). "\n"; $header .= "X-Sender-IP: $REMOTE_ADDR\n"; $header .= "Content-Type: text/html"; mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach","$message",$header); } $ant = "<h1>Vielen Dank für Ihre Anfrage</h1>\n<p>Ihre Daten wurden erfolgreich an info@ff-altenbach.de übermittelt.<br>Hier erhalten Sie noch einmal Ihre Angaben zu Ihrer Information aufgelistet:</p> \n" . $nachr; $ant .= "<p><strong><a href="javascript:window.print()" style="margin-right:100px;">Diese Seite drucken</a><a href="guestbook.php">Gleich noch einen Eintrag ins Gästebuch</a></strong></p>"; echo "$ant"; } else { echo "Die Informationsübermittelung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal."; unset($sent); } } else { $header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n"; $header .= "Reply-To: $email\n"; $header .= "X-Mailer: PHP/" . phpversion(). "\n"; $header .= "X-Sender-IP: $REMOTE_ADDR\n"; $header .= "Content-Type: text/html"; if (mail($email_to,"Eine E-Mail von meiner Webseite",$message,$header)) { if ($kopie==on) { mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach",$message,$header); } $ant = "<h1>Vielen Dank für Ihre Anfrage</h1>\n<p>Ihre Daten wurden erfolgreich an info@ff-altenbach.de übermittelt.<br>Hier erhalten Sie noch einmal Ihre Angaben zu Ihrer Information aufgelistet:</p> \n" . $nachr; $ant .= "<p><strong><a href="javascript:window.print()" style="margin-right:100px;">Diese Seite drucken</a><a href="guestbook.php">Gleich noch einen Eintrag ins Gästebuch</a></strong></p>"; echo "$ant"; } else { echo "Die Informationsübermittelung ist fehlgeschlagen, bitte versuchen Sie es später noch einmal."; unset($sent); } } }//schließende Klammer für if($vorname AND $nachname AND $email) }//schließende Klammer für if($sent==1)
if(!$sent) { ?> <h1>Kontakt</h1> <p>Wenn Sie Meinungen oder Anregungen haben oder uns aus anderen Gründen kontaktieren wollen, benutzen Sie bitte unser Formular:</p> <form name="feedback" action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="sent" value="1"> <table> <tr> <td class="rechts">Vorname:</td> <td><input name="vorname" type="text" size="40" maxlength="40" value="<?php echo $vorname;?>"></td> <tr> <td class="rechts">Name:</td> <td><input name="name" type="text" size="40" value="<?php echo $name;?>" maxlength="40"></td> </tr> <tr> <td class="rechts">E-Mail:</td> <td><input name="email" type="text" size="40" maxlength="40" value="<?php echo $email;?>"></td> </tr> <tr> <td class="rechts">Straße / Nr.:</label></td> <td><input name="strasse" type="text" size="40" maxlength="40" value="<?php echo $strasse;?>"> (optional)</td> </tr> <tr> <td class="rechts">PLZ und Ort:</td> <td><input name="plz" type="text" size="5" maxlength="5" value="<?php echo $plz;?>"> <input name="ort" type="text" size="30" maxlength="40" value="<?php echo $ort;?>"></td> </tr> <tr> <td class="rechts">Ihre Nachricht:</td> <td><textarea name="eingabe" rows="6" cols="40"><?php echo $eingabe;?></textarea></td> </tr> <tr> <td class="rechts">Attachment:</td> <td><input type="file" name="file" value="<?php if (isset($_POST['file'])) echo htmlentities(stripslashes($_POST['file'])); else echo ""; ?>" size="20"/></td> </tr> <tr> <td colspan="2"><input id="kopie" type="checkbox" name="kopie" checked> Ich wünsche eine Kopie meiner Anfrage an mein E-Mail Postfach<br> </td> </tr> </tr> <tr> <td><input name="submit" type="submit" value="Absenden"></td> <td><input name="loeschen" type="submit" value="Daten zurücksetzen"></td> </tr> </table> </form> <p>Diese E-Mail wird an <a href="mailto:info@ff-altenbach.de">info@ff-altenbach.de</a> geschickt!</p> <p>Außerdem können Sie uns freitags 19:00 Uhr alle 14 Tage zum Dienst am Gerätehaus <br>(Am Heller, 04828 Altenbach) erreichen. Die Termine entnehmen Sie bitte unserem <a href="dienstplan.php">Dienstplan</a>.</p> <?php }//schließende Klammer für if(!$sent) ?> </body> </html>
hi,
Meine Probleme liegen darin, dass
- beim Absenden des Formulars mit unausgefüllten, aber erforderlichen Feldern bleibt das file-input-Feld nicht ausgefüllt
natürlich nicht.
für file-inputfelder ist eine vorbelegung nicht erlaubt, aus sicherheitsgründen.
die datei wurde aber schon beim ersten abschicken mit hochgeladen (sofern der user eine ausgewählt hatte) - diese kannst du also schon bei der überprüfung des formulares sichern, und nachher mit den restlichen korrigierten daten kombinieren.
- die Datei zwar hochgeladen wird, aber in der E-Mail nur als Text erscheint (genau so, wie es in der E-Mail-Kopie für den Absender sein soll.
nein, dein ellenlanges script mit tonnenweise unrelevantem HTML-code schaue ich mir jetzt nicht durch, und vermutlich auch kaum ein anderer hier.
wenn das versenden von anhängen nicht wie gewünscht funktioniert, informiere dich bitte im netz, wie man sowas machen kann, beispielsweise hier: http://www.php-faq.de/q/q-mail-attachment.html.
gruß,
wahsaga
Hallo,
für file-inputfelder ist eine vorbelegung nicht erlaubt, aus sicherheitsgründen.
Aha, also geht das gar nicht, da kann ich ja auch probieren wie ich will! :-)
Aber trotzdem danke für den Hinweis!
die datei wurde aber schon beim ersten abschicken mit hochgeladen (sofern der user eine ausgewählt hatte) - diese kannst du also schon bei der überprüfung des formulares sichern, und nachher mit den restlichen korrigierten daten kombinieren.
Wie geht denn das? Kannst du das vielleicht erklären oder kennst du einen guten URL? Wäre wirklich klasse!
nein, dein ellenlanges script mit tonnenweise unrelevantem HTML-code schaue ich mir jetzt nicht durch, und vermutlich auch kaum ein anderer hier.
Oh, oh, daran habe ich gar nicht gedacht. Aber dabei hatte ich schon alles irrelevante aus dem HTML-Code gelöscht...
Aber könntest du vielleicht doch mal drüber schauen? Unten habe ich das Script noch etwas abgespeckt. Ich kann den Fehler echt nicht finden!
Vielen Dank schon mal.
Hier kann ich leider nichts finden, was mir weiter hilft...
Viele Grüße
Thomas L.
<?php
$max_attach_size = 500000;
if ($sent==1)
{
if ($_FILES['file']['size'] > $max_attach_size) {
echo "<strong>Attachment zu groß (".number_format($_FILES['file']['size']/1000,0,",","")." KB) - Maximalgröße: ".number_format($max_attach_size/1000,0,",","")." KB</strong><br>";unset($sent);
}
$nachr = "Name: " . $vorname . " " . $name . "\n
E-Mail: " . $email . ";
$nachr .= "Anschrift: " . $strasse ." " . $plz . " " . $ort . ";
$nachr .= "Ihre Nachricht: " . $eingabe;
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") {
$nachr .= "<tr>\n <td class="rechts">Attachment:</td>\n <td>".$_FILES['file']['name']."</td>\n</tr>";
}
$message="<html><body>";
$message.=$nachr;
$message.="</body></html>";
$email_from_name = "$vorname $name";
$email_from = "$email_from_name <$email>";
$email_to = "FF Altenbach info@ff-altenbach.de";
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") {
$datei_content = fread(fopen($_FILES['file']['tmp_name'],"r"),filesize($_FILES['file']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");
// Boundary:
$boundary = md5(uniqid(rand()));
// Mail-Header:
$header = "From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary="".$boundary.""\n";
$header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
$header .= "--".$boundary;
$header .= "\nContent-Type: text/html";
$header .= "\nContent-Transfer-Encoding: 8bit";
$header .= "\n\n".$message;
// Attachment:
$mail_header .= "\n--".$boundary;
$mail_header .= "\nContent-Type: ".$_FILES['file']['type']."; name="".$_FILES['file']['name'].""";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename="".$_FILES['file']['name'].""";
$mail_header .= "\n\n".$datei_content;
// Ende:
$header .= "\n--".$boundary."--";
// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
if (mail($email_to,"Eine E-Mail von meiner Webseite","",$header)) {
if ($kopie==on) {
$header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "Reply-To: $email\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach","$message",$header);
}
}
}
else {
$header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "Reply-To: $email\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
if (mail($email_to,"Eine E-Mail von meiner Webseite",$message,$header)) {
if ($kopie==on) {
mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach",$message,$header);
}
}
}
}//schließende Klammer für if($vorname AND $nachname AND $email)
}//schließende Klammer für if($sent==1)
if(!$sent) {
?>
<form name="feedback" action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
Attachment: <input type="file" name="file" size="20"/>
<input id="kopie" type="checkbox" name="kopie" checked> Ich wünsche eine Kopie meiner Anfrage an mein E-Mail Postfach
<input name="submit" type="submit" value="Absenden">
</form>
<?php
}//schließende Klammer für if(!$sent)
?>
hi,
die datei wurde aber schon beim ersten abschicken mit hochgeladen (sofern der user eine ausgewählt hatte) - diese kannst du also schon bei der überprüfung des formulares sichern, und nachher mit den restlichen korrigierten daten kombinieren.
Wie geht denn das? Kannst du das vielleicht erklären oder kennst du einen guten URL?
datei wird beim ersten abschicken des formulars ins temp-verzeichnis hochgeladen - dort geht sie allerdings verloren, wenn die scriptinstanz beendet wird. also schon zu diesem zeitpunkt irgend wo hin sichern, move_uploaded_file(). und neuen namen merken - bspw. in einer session.
anschließend formular noch so oft "neu vorsetzen", bis fehler in den (text-)feldern korrigiert sind - und dann deren werte, plus vorher gesicherte datei nehmen, als mail zusammenbasteln, und abschicken.
gruß,
wahsaga
Hallo,
für file-inputfelder ist eine vorbelegung nicht erlaubt, aus sicherheitsgründen.
Aha, also geht das gar nicht, da kann ich ja auch probieren wie ich will! :-)
Aber trotzdem danke für den Hinweis!die datei wurde aber schon beim ersten abschicken mit hochgeladen (sofern der user eine ausgewählt hatte) - diese kannst du also schon bei der überprüfung des formulares sichern, und nachher mit den restlichen korrigierten daten kombinieren.
Wie geht denn das? Kannst du das vielleicht erklären oder kennst du einen guten URL? Wäre wirklich klasse!
Zum beispiel mit Cookies oder Sessions oder
$name=explode('.'$_FILES['userfile']['name']);
$pruef=md5($_FILES['userfile']['tmp_name'].$_SERVER['USER_AGENT']);
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$pruef.$name[count($name)-1])
echo '<input type="hidden" name="datei_id" value="'.$pruef.'">';
nein, dein ellenlanges script mit tonnenweise unrelevantem HTML-code schaue ich mir jetzt nicht durch, und vermutlich auch kaum ein anderer hier.
Oh, oh, daran habe ich gar nicht gedacht. Aber dabei hatte ich schon alles irrelevante aus dem HTML-Code gelöscht...
Aber könntest du vielleicht doch mal drüber schauen? Unten habe ich das Script noch etwas abgespeckt. Ich kann den Fehler echt nicht finden!
generell sollte immer erst der Scriptteil notiert werden und dann die Ausgabe und kein Vermischen. Denn Dein Code läßt sich äußerst schwer debuggen...
<?php
Maximale Größe des Attachments in Bytes:
$max_attach_size = 500000;
if ($sent==1)
Dein Script funktioniert nur mit register_global=On
{
if ($_FILES['file']['size'] > $max_attach_size) {
echo "<strong>Attachment zu groß (".number_format($_FILES['file']['size']/1000,0,",","")." KB) - Maximalgröße: ".number_format($max_attach_size/1000,0,",","")." KB</strong><br>";unset($sent);
unset($sent) bringt Dir in diesem, wie auch in allen anderen Fällen nicht mehr als eine Codevergrößerung
}
$nachr = "Name: " . $vorname . " " . $name . "\n
E-Mail: " . $email . ";
$nachr .= "Anschrift: " . $strasse ." " . $plz . " " . $ort . ";
$nachr .= "Ihre Nachricht: " . $eingabe;
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") {
$nachr .= "<tr>\n <td class="rechts">Attachment:</td>\n <td>".$_FILES['file']['name']."</td>\n</tr>";
}
$message="<html><body>";
$message.=$nachr;
Du arbeitest oben mit einer Tabellenzeile. Du öffnest keine Tabellenspalte!
$message.="</body></html>";
$email_from_name = "$vorname $name";
$email_from = "$email_from_name <$email>";
prüfe die E-Mail auf Gültigkeit!
$email_to = "FF Altenbach info@ff-altenbach.de";
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") {
$datei_content = fread(fopen($_FILES['file']['tmp_name'],"r"),filesize($_FILES['file']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");
// Boundary:
$boundary = md5(uniqid(rand()));
unnötig prerformanclastig es reicht ein eindeutiger vordefinierter String
// Mail-Header:
$header = "From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary="".$boundary.""\n";
$header .= "This is a multi-part message in MIME format.\n";
// Mail-Text:
ab hier ist es kein header mehr es ist Mail-Body der Headertrenner ist UNBEDINGT chr(13).chr(10); dies läßt sich auf manchen Betriebssystemen mit "\r\n" representieren Das ist auch der Grund für die Textanzeige des HTMLs
$header .= "--".$boundary;
$header .= "\nContent-Type: text/html";
$header .= "\nContent-Transfer-Encoding: 8bit";
$header .= "\n\n".$message;
// Attachment:
$mail_header .= "\n--".$boundary;
$mail_header .= "\nContent-Type: ".$_FILES['file']['type']."; name="".$_FILES['file']['name'].""";
ACHTUNG! gerade Freund IE liefert nur alzugerne einen falschen MIME-Type mit. gehe lieber nach der Endung oder nutze mime_content_type() oder http://pecl.php.net/package/fileinfo
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename="".$_FILES['file']['name'].""";
$mail_header .= "\n\n".$datei_content;
// Ende:
$header .= "\n--".$boundary."--";
// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
if (mail($email_to,"Eine E-Mail von meiner Webseite","",$header)) {
if ($kopie==on) {
$header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "Reply-To: $email\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach","$message",$header);
}
}
}
else {
$header="From: FF Altenbach Mail-Service post@ff-altenbach.de\n";
$header .= "Reply-To: $email\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
unnötiger Müll
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
if (mail($email_to,"Eine E-Mail von meiner Webseite",$message,$header)) {
if ($kopie==on) {
mail("$email_from","Kopie Ihrer E-Mail an FF Altenbach",$message,$header);
}
}
}
}//schließende Klammer für if($vorname AND $nachname AND $email)
}//schließende Klammer für if($sent==1)if(!$sent) {
?><form name="feedback" action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
Attachment: <input type="file" name="file" size="20"/>
<input id="kopie" type="checkbox" name="kopie" checked> Ich wünsche eine Kopie meiner Anfrage an mein E-Mail Postfach
<input name="submit" type="submit" value="Absenden">
</form>
<?php
}//schließende Klammer für if(!$sent)
?>
Gruß aus Berlin!
eddi