Tom1tk: warum hast Du die Fehler alle wieder reingebaut?

Beitrag lesen

Aber jetzt:

Hallo erstmal!
(hoffentlich die letzte Runde)

Also: Hab alle Argumente mit eingebaut, die Du mir genannt hattest. Attachment wird versendet, es kommt aber immer noch nur eine Datei namens "php2PqQ7h.dat" (bzw. zwei oder mehr) mit an.

B I T T E     B I T T E nochmals um deine Hilfe:

<?
if ($_POST["action"]=="versenden")
{
$from = $_POST["absender"];
$recipient = $_POST["empfaenger"];
$subject= $_POST["betreff"];

$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.

/*###### Ohne Array #########################
$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";
}

#####################*/

###Jetzt mit array####################################

if (is_array($attach))
{
foreach($attach as $filename)
{

$fh = @fopen($filename,"r"); ## da war noch ein Fehler (file->filename)
if ($fh)
{
$file_content = fread($fh,filesize($filename));
fclose($fh);
$file_content = chunk_split(base64_encode($file_content),76,"\n");
$header .= "\n\n--$boundary"; ## hier die Leerzeilen
$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";
}
else
{
$err[] = "Attachment File ".$filename." ließ sich nicht öffnen";
}

} ## end foreach()
} ## endif isarray
else
{
$err[] = "Attachment fehlt.";
}

###Ende Vorbereitung
$header .= "\n--$boundary--";

$ok = mail($recipient,$subject,"",$header);
if ($ok=="true"){print "Nachricht wurde versandt...<br><br>";}
else{print "Konnte Nachricht nicht versenden...<br><br>";}
echo "<pre>";
echo htmlentities($header);
echo "</pre>";

print $file."<br><br>";
} //Ende send==True
?>

<html>
<body>
<form action="index.php" method="post" enctype="multipart/form-data" target="_blank">

<form action="index.php" method="post" target="_blank">
Empfänger: <input type="text" name="empfaenger" value=""><br>
Absender: <input type="text" name="absender" value=""><br>
Text: <textarea name="text" rows="10" cols="50" WRAP="VIRTUAL"></TEXTAREA><br>
Attachment: <input type="file" name="attach[]"><br>
Attachment: <input type="file" name="attach[]"><br>
<input type="submit" value="versenden" name="action">
</body>
</html>

Vielen Dank, Tom1tk