Ich wollte ne HTML-Mail mit Anhang versende jedoch wird der Anhang nicht angehängt sondern in der Mail als Buchstaben / Zahlenkombination anzeigt. Kann mir jemand auf die Sprünge helfen ?
Hier mein Code:
eigentlich müsste es doch so gehen oder sehe ich da was falsch ?
Hier mein Code:
PHP Code:
<?php
$name = $_POST['name'];
$mail = $_POST['mail'];
$to = $_POST['to'];
$cc = $_POST['cc'];
$bcc = $_POST['bcc'];
$body = $_POST['body'];
$datei = "haus.pdf";
$subject = "e-mail von $SERVER_NAME";
$ip = getenv("REMOTE_ADDR");
$host = gethostbyaddr($ip);
$message = "$body<br><br>
-----------------------------------------------------------------------------------<br>
[Zur Sicherheit wurden Ihre IP($ip) und Ihr Host($host) mitgeschickt]";
if (!empty($to)) {
// Ab hier nix mehr ändern!!!
$datei_content = fread(fopen($datei,"r"), filesize($datei));
$datei_content = chunk_split(base64_encode($datei_content));
$boundary = strtoupper(md5(uniqid(time())));
// Beginne den Mail-Header mit MIME-Mail-Header
$mail_header = "From: $name <$mail>\r\n";
$mail_header .= "To: $to\r\n";
$mail_header .= "Cc: $cc\r\n";
$mail_header .= "Bcc: $bcc\r\n";
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- ";
$mail_header .= "Dies ist eine mehrteilige Nachricht im MIME-Format";
// Hier faengt der normale Mail-Text an
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
// Hier faengt der Datei-Anhang an
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/x-zip-compressed; name=\"".$datei."\"";
// Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$datei."\"";
$mail_header .= "\n\n$datei_content";
// Gibt das Ende der eMail aus
$mail_header .= "\n--$boundary--";
if(preg_match("/^([_a-zA-Z0-9-}+)*@([a-zA-Z-0-9-]+\.)+([a-zA-Z]{2,3})$/",$mail)) {
mail($to, $subject, $message, $mail_header);
$status= "Ihre Nachricht wurde erfolgreich versandt";
}
else
$status = "fehler!";
echo "$status<BR><BR>";
}
}
?>
Comment