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?
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:
<?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>";
?>
Zuletzt bearbeitet: