Mail Funktion klappt nicht mit Anhang
Timm Maass
- php
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