Timm Maass: Mail Funktion klappt nicht mit Anhang

function sendemail($an,$betreff,$mailtext,$anhang,$dateiname,$datei,$anhang_content_type)
 {
   global $contenttypes;
   $mail_header = "From: newsletter@stefan.de";
   if($anhang=="jep" && $dateiname && $datei && $datei != "none") {

$datei_content = fread(fopen($datei,"r"),filesize($datei));

if($contenttypes[$anhang_content_type][encoding]=="base64") $datei_content = chunk_split(base64_encode($datei_content));
       else $datei_content = $datei_content;

$boundary = strtoupper(md5(uniqid(time())));

$mail_header .= "\nMIME-Version: 1.0";
        $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
       $mail_header .= "\n\Automatischer Newsletter";
                $mail_header .= "\n--$boundary";
       $mail_header .= "\nContent-Type: text/plain";
       $mail_header .= "\nContent-Transfer-Encoding: 8bit";
       $mail_header .= "\n\n$mailtext";
       $mail_header .= "\n--$boundary";
       $mail_header .= "\nContent-Type: $anhang_content_type; name="$dateiname"";
       $mail_header .= "\nContent-Transfer-Encoding: ".$contenttypes[$anhang_content_type][encoding];
       $mail_header .= "\nContent-Disposition: attachment; filename="$dateiname"";
       $mail_header .= "\n\n$datei_content";
           $mail_header .= "\n--$boundary--";

} else {

$mail_header .= "\nContent-Type: text/plain";
       $mail_header .= "\nContent-Transfer-Encoding: 8bit";
       $mail_header .= "\n\n".$mailtext;

}
        if(@mail($an,$betreff,"",$mail_header))
          {
             $msg .= "Die eMail mit dem Betreff ".htmlentities($betreff)." wurde an ".htmlentities($an)." gesendet.<br>";

} else {
        $msg .= "Es ist ein Fehler beim senden der eMail an $an aufgetreten.<br>
        $mail_header<br><br>";
       }

return $msg;
    }

Also, das war erstmal der scriptshock - aber ihr versteht das schon...

Eigentlich funktioniert alles, wie es soll. Ausser, dass der Anhang in 8 Byte Grösse ankommt. Es wird nur der Name geschickt obwohl doch alle Variablen korrekt übergeben werden.
Ohne Funktion, also direkt eingebunden Funktioniert es aber versendet den Text/Plain Inhalt erst einmal an den zweiten zweimal, an den dritten dreimal und so weiter.

Ich hoffe mir kann jemand helfen.

Danke schon mal.
Timm