Hallo php.de-Gemeinde!
Nun ist es so weit, ich brauche wirklich eure Hilfe!
Habe zwar mit php einiges bereits realisiert, doch an dieser Stelle komm ich einfach nicht weiter.
Ich möchte eine Mail im HTML-Format aus php ( mail(…) ) mit einem eingebettetem Logo und einem PDF-Dokument als Anhang versenden.
Die Mail wird auch gesendet, doch es treten folgende Probleme auf:
1. Das Logo wird nicht angezeigt. Der Code des Bildes erscheint einfach mit in der Mail.
2. Während die Mail in meinem Outlook 2003 „normal“ angezeigt wird, wird sie bei einem Freund (ebenfalls Outlook 2003, keine Filterung ...) bloß als HTML-Quellcode angezeigt.
Das PDF-Dokument wird allerdings „normal“ im Anhang mitverschickt!
Vermutlich ist für Punkt 1, ein Fehler in der Verschachtelung der multipart-Blöcke verantwortlich, zum Punkt 2 fällt mir allerdings nichts ein.
Bitte helft mir, wäre für alles dankbar!!!
Nun ist es so weit, ich brauche wirklich eure Hilfe!
Habe zwar mit php einiges bereits realisiert, doch an dieser Stelle komm ich einfach nicht weiter.
Ich möchte eine Mail im HTML-Format aus php ( mail(…) ) mit einem eingebettetem Logo und einem PDF-Dokument als Anhang versenden.
Die Mail wird auch gesendet, doch es treten folgende Probleme auf:
1. Das Logo wird nicht angezeigt. Der Code des Bildes erscheint einfach mit in der Mail.
2. Während die Mail in meinem Outlook 2003 „normal“ angezeigt wird, wird sie bei einem Freund (ebenfalls Outlook 2003, keine Filterung ...) bloß als HTML-Quellcode angezeigt.
Das PDF-Dokument wird allerdings „normal“ im Anhang mitverschickt!
Vermutlich ist für Punkt 1, ein Fehler in der Verschachtelung der multipart-Blöcke verantwortlich, zum Punkt 2 fällt mir allerdings nichts ein.
Bitte helft mir, wäre für alles dankbar!!!
PHP-Code:
$abgrenzung_1 = md5(uniqid(rand())) . '-part-separator-1-';
$abgrenzung_2 = md5(uniqid(rand())) . '-part-separator-2';
$cid = md5(uniqid(rand()));
// header-attribute
$xtra = "From: $from_email_address < x y z>\r\n";
$xtra .= "X-Mailer: PHP ". phpversion(). "\r\n";
$xtra .= "MIME-Version: 1.0\r\n";
$xtra .= "Content-Type: multipart/mixed;
boundary = \"$abgrenzung_1\"\r\n";
$xtra .= "This is a multi-part message in MIME format";
// äußere Abgrenzung
$text = "--". $abgrenzung_1. "\r\n";
$text .= "Content-Type: multipart/related;
boundary =\"$abgrenzung_2\"\r\n";
$text .= "--".$abgrenzung_2."\r\n";
$text .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$text .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$text .=
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<title> xyz </title>
</head>
<body>
<div style=\"border: solid 2px #eeeecb; margin: 0px auto; width: 920px; padding: 10px;\">
<!-- das Logo, dass nicht angezeigt wird -->
<img src=\"cid:$cid\">".
// Der eigentlicher mail-content
$email_text .
"</div>
</body>
</html>". "\r\n";
// ab dieser Stelle erscheint der Quellcode in der Mail!!!
$text .= "--".$abgrenzung_2."\r\n";
// das Logo
$text .= "Content-Type: image/jpeg; name=\"logo.jpg\"\r\n";
$text .= "Content-Transfer-Encoding: base64\r\n";
$text .= "Content-ID: <$cid>\r\n\r\n";
// $text .= "Content-Disposition: inline; filename=test.jpg\n\n";
$file = "http://www.php.de/images/logo.jpg";
$attachment = fread(fopen($file, "r"), filesize($file));
$attachment = chunk_split(base64_encode($attachment));
$text .= $attachment."\r\n";
$text .= "--".$abgrenzung_2."--\r\n";
$text .= "--".$abgrenzung_1."\r\n";
$text .= "Content-Type: application/pdf; name=\"agb.pdf\"\r\n";
$text .= "Content-Transfer-Encoding: base64\r\n";
$text .= "Content-Disposition: attachment; filename=\"agb.pdf\"\r\n\r\n";
$file = "download/agb.pdf";
$attachment = fread(fopen($file, "r"), filesize($file));
$attachment = chunk_split(base64_encode($attachment));
$text .= $attachment."\r\n";
// abschließende, äußere Abgrenzung
$text .= "--".$abgrenzung_1."--\r\n";
$res = mail($to_email_address, $email_subject, $text, $xtra);
Kommentar