PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   mail() und MIME (http://www.selfphp.de/forum/showthread.php?t=22702)

madjic 17.01.2010 02:32:04

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>";
?>


madjic 17.01.2010 05:10:03

AW: mail() und MIME
 
ahaaa, man muss den anhang in den inhalt und nicht in die header schreiben…dann geht auch hinter Content-* die doppelte newline

ffje 10.06.2010 12:06:28

AW: mail() und MIME
 
Guten Tag,

in bin php-Anfänger und neu in diesem Forum.
Zum Versenden von email mit Anhang ?

Am ProgrammCode von madjic müsste doch nach
$mailheader .= "--".$mime_boundary.$rn;
der Inhalt der email anfangen, also etwa
$message .= "Content-Type: text/plain; charset=\"utf-8\"".$rn;
und so weiter...
um das dann der mail-Funktion als 3. Parameter zu übergaben.

Schon viel versucht/variiert vertippt?
Drüberschlafen hat mich auch nicht weitergebracht

cortex 10.06.2010 12:52:58

AW: mail() und MIME
 
macht mail-versand zum kinderspiel: swiftmailer.

cx

ffje 12.06.2010 13:32:17

AW: mail() und MIME
 
ich habe mal phpinfo ausgefürt: Linux-System...
daraufhin habe ich die header-Einträge mit \n (LF) getrennt,
OK


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:23:10 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.