Einzelnen Beitrag anzeigen
  #1  
Alt 17.01.2010, 03:32:04
madjic madjic ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 36
Beiträge: 2
mail() und MIME

Moin allerseits,
ich versuche eine auf dem Server liegende pdf per mail() zu verschicken.
das Problem dabei ist, dass der Anhang nicht angehängt wird.
Der plaintext wird auch nicht in der Mail angezeigt, vermutlich hängt das mit "X-Amavis-Alert: BAD HEADER SECTION, MIME error: error: unexpected end of header" zusammen.
Sobald man chunk_split() dazunimmt, scheitert das versenden der Mail komplett.
Meine Vermutung ist, dass es was damit zu tun hat, dass ich auch kein \n\n einfügen kann, obwohl das ja bei MIME eigentlich so soll. aber ich bin vollkommen ratlos, warum das nicht geht. liegt das an mir? liegt das an der Konfiguration des Servers? oder am Wetter?

PHP-Code:
<?php
error_reporting
(E_ALL); 
include(
"header.php");
include(
"dbconnect.php");
include(
"vars.php");
$status "Mails versendet";
while (
$row =  mysql_fetch_assoc($result)) {
    include(
"fetch.php");

$filename $date."-".$id.".pdf";
$filepath=$path."/".$year."/".$filename;

//Datei öffnen
/*
$handle = fopen ($filepath, "r");
//clearstatcache();
$anhang = fread($handle, filesize($filepath));
fclose($handle);
*/
$anhang file_get_contents($filepath);
$anhang base64_encode($anhang);
$anhang chunk_split($anhang);
$betreff "bla ".$year;
$rn "\r\n";
//Trennzeichenfolge
$mime_boundary "X[".md5(time())."]";

//Header
$mailheader "From:\"Admin<admin@server\"".$rn;
$mailheader .= "Reply-To: <admin@server>".$rn;
$mailheader .= "To: ".$vname." ".$name."<".$email.">".$rn;
$mailheader .= "MIME-Version: 1.0".$rn;
$mailheader .= "Content-Type: multipart/mixed; boundary=".$mime_boundary.$rn ;
$mailheader .= "This is a multi-part message in MIME format.".$rn;
$mailheader .= "--".$mime_boundary.$rn;
$mailheader .= "Content-Type: text/plain; charset=\"utf-8\"".$rn;
$mailheader .= "Content-Transfer-Encoding: 8bit".$rn;
$mailheader .= "Sollten Sie Probleme beim öffnen des Anhangs haben, melden sie sich".$rn;
//attachment
$mailheader .= "--".$mime_boundary.$rn;
$mailheader .= "Content-Type: application/octetstream; name=\"".$filename."\"".$rn;
$mailheader .= "Content-Transfer-Encoding: base64".$rn;
$mailheader .= "Content-Disposition: attachment; file=\"".$filename."\"".$rn;
$mailheader .= $anhang.$rn;
$mailheader .= "--".$mime_boundary."--";

echo 
"Sende Mail an ".$vname." ".$name." (".$email.")";
$ok mail($email$betreff""$mailheader);
if (
$ok) { echo "...done"; }
    else {echo 
"FEHLER";$status="FEHLER";};
    echo 
"<br>";
    };
    echo 
"<b>".$status."</b>";
?>
Mit Zitat antworten