php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.12.2008, 13:43  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 11
Eremit befindet sich auf einem aufstrebenden Ast
Standard Probleme mit einer HTML-Mail und verschiedenen Multipart-Blöcken

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!!!

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); 

Geändert von Eremit (23.12.2008 um 12:49 Uhr).
Eremit ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.12.2008, 13:45  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hallo und willkommen,

bitte benutze [php]-Tags zur Syntaxhervorhebung.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 22.12.2008, 17:03  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Solche Mailsendungen scheitern in der Regel an fehlenden oder fehlerbehafteten Headern. Mach das z.B. mit phpMailer - das hast du mit 10 Zeilen Code fertig.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 23.12.2008, 12:36  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 11
Eremit befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Hallo und willkommen,

bitte benutze [php]-Tags zur Syntaxhervorhebung.
Hallo,
Danke für den Hinweis! Bin stark sehbehindert und nutze spezielle Anwendungen wie Sprachausgabe (screenreader), daher fällt mir so was wie eine "besondere" Textformatierung nicht wirklich auf. Wird beim nächsten mal darauf achten.

Gruß
Eremit ist offline  
Alt 23.12.2008, 12:49  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Okay. Ich habe die Tags im obigen Post mal eingefügt, das ist Leute, die nicht auf Screenreader angewiesen sind, deutlich besser zu lesen.
Ich würde ehrlich gesagt auch auf phpMailer zurückgreifen. Wenn du das nicht willst, dann nehme dir mal den Quellcode der gesendeten Mail vor. Dort sind Fehler meist leichter zu erkennen als in der PHP-Datei.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 23.12.2008, 13:01  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 11
Eremit befindet sich auf einem aufstrebenden Ast
Standard

Hi Wolla, Danke für den Hinweis mit PhpMailer, Wahrscheinlich bleibt mir nichts weiter übrig, als die Klasse zu benutzen, würde aber gern selbst nachvollziehen können, warum denn das "verflixte" Ding nicht funktionieren will!
Vor Allem angesichts der Tatsache, dass es sich hier um ein relativ einfaches Konstrukt handelt.
Gruß
Eremit ist offline  
Alt 23.12.2008, 13:17  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 11
Eremit befindet sich auf einem aufstrebenden Ast
Standard

Hi Manko10,
Ich hatte bereits einige Male, mal die von mir generierte Mail -, mal eine äquivalente Mail aus Outlook „seziert“, meine Erkenntnis: Als Differenz fallen mir bloß einige „x-…“ Header von Outlook auf, kann mir aber nicht wirklich vorstellen, dass dies der Grund sein soll.

Na ja, Ihr habt natürlich recht, eine ausgereifte Lösung sollte schon in der Regel der eigenen Kreation vorgezogen werden.

Wird mir dann PhpMailer mal genauer ansehen.
Gruß
Eremit ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
Probleme bei der combo html und php Dopedouglaz PHP Tipps 2005 10 13.05.2005 11:14
Mit der PHP mail() Funktion eine HTMl mail verschicken? PHP Tipps 2005 6 09.05.2005 07:13
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
html mail ich gebs auf :-( PHP Tipps 2005 17 03.03.2005 12:13
Probleme mit mail() Mano PHP Tipps 2005 8 17.02.2005 17:10
[Erledigt] html mit mail versenden PHP-Fortgeschrittene 0 27.01.2005 19:53
Grosse Probleme Code an HTML Grundgerüst anzupassen Kori PHP Tipps 2005 6 15.01.2005 10:42
bilder in html mail PHP-Fortgeschrittene 11 10.01.2005 20:03
mehrere Atachement mit HTML Mime mail class??? 18inch PHP Tipps 2004-2 1 28.11.2004 23:58
[Erledigt] HTML Formular durch PHP Code per Mail versenden PHP Tipps 2004-2 3 12.11.2004 11:48
warum nur html mail? PHP Tipps 2004 2 05.08.2004 09:42
html mail PHP Tipps 2004 2 03.08.2004 09:05
[Erledigt] Probleme mit html tags! PHP Tipps 2004 5 28.07.2004 23:37
Antwort mail aus Kontaktformular in HTML, aber wie?! medico PHP Tipps 2004 2 14.07.2004 16:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
outlook 2003 zeigt html mail nicht multipart/related;, outlook 2003 multipart/mixed;, this is a multi-part message in mime format. outlook 2003, outlook 2003 mail wird als quelltext angezeigt, outlook 2003 multipart problem, image upload php base64_encode error a particial block, outlook problem mit multipart/mixed, mime multipart verschachteln, mail \anhang wird als text\, php multipart emails with html and pdf, outlook 2003 mime format email, outlook 2003 pdf anhang wird als text dargestellt, multipart/mixed cid php, outlook 2003 quelltext wird angezeigt, quelltext multipart email, outlook 2003 mulipart mixed anhang als text, outlook 2003 html als quelltext angezeigt, php multipart mail cid multipart, outlook 2003 anzeige html multipart/mixed;, outllook 2003 quelltext multipart

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum