ReHallo,
Also außer dass mich persönlich die Methode get gestört hat und ein Fehlendes Leerzeichen nach dem From: konnte ich keinen wesentlichen Fehler entdecken. Aber soll ja nix heißen.
Probiers nochmal mit dem Leerzeichen nach "From: "
Hast Du denn alle Fehlermeldungen eingeschalet zum Testen?
Hast Du register_globals ausgeschaltet?
Und lass das Script nicht auf einem öffentlich zugänglichen Server ohne Zugangskontrolle rumfliegen. Sonst hast Du ein Open Relay gebaut.
<?php #### mimemail.php ###
Zum Testen:
ini_set("error_reporting","E_ALL");
if ($_POST["action"]=="versenden")
{
$from = $_POST["absender"];
$recipient = $_POST["empfaenger"];
$subject= $_POST["betreff"]; ## darf nur ASCII 0-127 sein!
## müsstest Du nochmal eine Kastrierfunktion für bauen.
$boundary = strtoupper(md5(uniqid(time())));
$header = "From: $from\n"; //kommt von Formular
$header .= "MIME-Version: 1.0";
$header .= "\nContent-Type: multipart/mixed; boundary="$boundary"";nach den zwei Zeilenschaltungen beginnt der Mailbody
$header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
nach dieser Boundary beginnt der erste Mime-Teil
$header .= "\n--$boundary";
$header .= "\nContent-Type: text/plain";
$header .= "\nContent-Transfer-Encoding: 8bit";20 nach wieder zwei Zeilenschaltungen beginnt der Body dieses
Abschnitts. Und das ist der Plain-Text.
$header .= "\n\n$text";
hier wird das Attachment vorbereitet.
$fh = fopen($file,"r");
if ($fh)
{
$file_content = fread($fh,filesize($filename));
fclose($fh);
$file_content = chunk_split(base64_encode($file_content),76,"\n");
$header .= "\n--$boundary";
$header .= "\nContent-Type: application/octetstream;"."name="".basename($filename).""";
$header .= "\nContent-Transfer-Encoding: base64";
$header .= "\nContent-Disposition: attachment;"."filename="".basename($filename).""";
$header .= "\n\n$file_content\n";
}
$header .= "\n--$boundary--";//$text,$subject und $recipient werden vom Formular übergeben via POST_Vars
//mail($recipient,$subject,$text,$header);$ok = mail($recipient,$subject,"",$header);
if ($ok=="true"){print "Nachricht wurde versandt...";}
else{print "Konnte Nachricht nicht versenden...";}
} //Ende send==True
?><html>
<body>
<form action="mimemail.php"
method="post"
enctype="multipart/form-data"
target="_blank">
<!-- multipart/form-data im weisen Vorgriff auf den Fileupload -->
Empfänger: <input type="text" name="empfaenger"><br>
Absender: <input type="text" name="absender"><br>
Betreff: <input type="text" name="betreff"><br>
Text: <textarea name="text" rows="10" cols="50" WRAP="VIRTUAL"></TEXTAREA><br>
Attachment: <input type="file" name="file"><br>
<input type="submit" value="versenden" name="action">
</body>
</html>
Wenn es nun nicht funktioniert und die Anderen keine Lust mehr haben, nochmal zu schauen, dann bin ich mit meinem PHP für heute auch am Ende.
Liebe Grüße
Tom