Im Netz habe ich folgendes Kontaktformular gefunden
Wenn ich es absende, wird die Mail zwar abgeschickt, jedoch erhalten folgende Fehlermeldung
Eine Mail kommt an mit dem Anhang attachment.txt. Wenn ich den Anhang öffnen will, sagt Thunderbird, dass die Mail anscheinend keinen Anhang hat... Wo liegt hier das Problem?
PHP-Code:
<h1>Bewerbung</h1>
<?php
$Empfaenger = "empfänger@domain.de";
if($_REQUEST['Send']) {
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht'])) {
echo "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
} else {
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";
while(list($Formularfeld, $Wert) = each($_REQUEST)) {
if($Formularfeld != "Send" && $Formularfeld != "Anhang") {
$Header .= $Formularfeld.": ".$Wert."\n";
}
}
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
echo"Vielen Dank für Ihre eMail!";
}
} else {
?>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo $_SERVER['PHP_SELF?site=casting2']; ?>" enctype="multipart/form-data" method="post">
<tr>
<td>Name:</td>
<td><input name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>eMail:</td>
<td><input name="Email" size="20" type="text"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><select name="Betreff" size="1"><option>Hilfe</option><option>Kritik</option><option>Werbung</option></select></td>
</tr>
<tr>
<td>Nachricht:</td>
<td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
</tr>
<tr>
<td>Anhang:</td>
<td><input name="Anhang" size="20" type="file"></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken"> <input name="Reset" type="reset" value="Löschen"></td>
</tr>
</form>
</table>
<?php } ?>
Warning: fread(): supplied argument is not a valid stream resource in [...]casting2.php on line 54
Kommentar