![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Multipurpose Internet Mail Extension (MIME) | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
21.11.2007, 06:05 Uhr Mad_Dog Posts: 1944 Nutzer |
Hallo, Mein Problem: Ich möchte eine MIME-Email generieren, die aus einer HTML-Datei, sowie mehreren Bildern besteht. Die Bilder sind im HTML-Code angegeben. Der HTML-Part soll bei allen gängigen email-Providern, wie z.B. gmx, web.de, etc. korrekt dargestellt werden - samt Bildern. Natürlich habe ich per Google gesucht und auch einiges an Dokumentation gefunden. Aber irgendwas mache ich noch falsch. Bei Web.de werden meine mails korrekt dargestellt. Bei gmx bekommt man den HTML-Part ohne Bilder zu sehen und die Bilder sind unten als base64-Codierter Text zu sehen. Momentan sieht der Code der email etwa so aus: code:Return-Path: <www-data@host18-233-149-62.serverdedicati.aruba.it> X-Flags: 1001 Delivered-To: GMX delivery to norman.walter@gmx.net Received: (qmail invoked by alias); 21 Nov 2007 04:40:16 -0000 Received: from host18-233-149-62.serverdedicati.aruba.it (EHLO host18-233-149-62.serverdedicati.aruba.it) [62.149.233.18] by mx0.gmx.net (mx083) with SMTP; 21 Nov 2007 05:40:16 +0100 Received: by host18-233-149-62.serverdedicati.aruba.it (Postfix, from userid 33) id 2FC7B7A802A; Wed, 21 Nov 2007 05:33:41 +0100 (CET) To: norman.walter@gmx.net Subject: Schi- & Snowboardschule Sport am Jet MIME-Version: 1.0 Content-Type: multipart/related; boundary="CONTENT682155329850585171920463162826"; type = multipart/alternative From: sport@amjet.at Message-Id: <20071121043341.2FC7B7A802A@host18-233-149-62.serverdedicati.aruba.it> Date: Wed, 21 Nov 2007 05:33:41 +0100 (CET) X-GMX-Antivirus: -1 (not scanned, may not use virus scanner) X-GMX-Htest: 0.12,0.06 X-GMX-Antispam: 0 (Mail was not recognized as spam) X-GMX-UID: hINxfwo7PjlsJrwy2DQ2bUYzMTE2NYko --CONTENT682155329850585171920463162826 Content-Type: multipart/alternative; boundary="CONTENT682155329850585171920463162826" --CONTENT682155329850585171920463162826 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Hier kommt der Html-Code... --CONTENT682155329850585171920463162826-- --CONTENT682155329850585171920463162826 Content-Type: image/jpeg; name="WebMail_01.jpg" Content-Transfer-Encoding: base64 Content-ID: <WebMail_01> Content-Disposition:inline; filename="WebMail_01.jpg" ..Hier kommt das 1. Base64 Codierte Bild --CONTENT682155329850585171920463162826 Content-Type: image/jpeg; name="WebMail_02.jpg" Content-Transfer-Encoding: base64 Content-ID: <WebMail_02> Content-Disposition:inline; filename="WebMail_02.jpg" ...Hier kommt das 2. Base64 Codierte Bild --CONTENT682155329850585171920463162826-- Im Html Code sehen die Image-Tags so aus: code:<img style="border: 0px solid ; width: 600px; height: 26px;" src="cid:WebMail_01" hspace="0"> Was mache ich falsch? -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
10.12.2007, 16:05 Uhr Gazelle Posts: 151 Nutzer |
@Mad_Dog: The MIME Multipart/Related Content-type Ich würde mal sagen der erste "Content-Type: multipart/alternative" ist falsch, weil es ja keine Alternative gibt. Außerdem verwendet er den gleichen "boundary" Eintrag wie schon die Mail selbst, was wahrscheinlich zu den genannten Problemen führt. Entferne einfach: code:--CONTENT682155329850585171920463162826 Content-Type: multipart/alternative; boundary="CONTENT682155329850585171920463162826" und das erste Vorkommen von: code:(nach dem text/html und vor dem image/jpeg)--CONTENT682155329850585171920463162826-- dann dürfte es funktionieren. /edit: Im Header noch code:aufContent-Type: multipart/related; boundary="CONTENT682155329850585171920463162826"; type = multipart/alternative code:stellen.Content-Type: multipart/related; boundary="CONTENT682155329850585171920463162826"; type = text/html [ Dieser Beitrag wurde von Gazelle am 11.12.2007 um 13:51 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
17.12.2007, 13:29 Uhr Mad_Dog Posts: 1944 Nutzer |
@Gazelle: Ich hab's jetzt so: Header: code:MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_MIX_ff0fb2fd365833f450710935166116e0" Mailbody: code:This is a multi-part message in MIME format. ------=_MIX_ff0fb2fd365833f450710935166116e0 Content-Type: multipart/related; boundary="----=_REL_7a1d89cceb7746105bc99a82ec276109" ------=_REL_7a1d89cceb7746105bc99a82ec276109 Content-Type: multipart/alternative; boundary="----=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4" ------=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Ein kleiner Text... ------=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4 Content-Type: text/html; Content-Transfer-Encoding: base64 Base64-codierter HTML-Teil ------=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4-- ------=_REL_7a1d89cceb7746105bc99a82ec276109 Content-Type: image/jpeg; name="WebMail_01.jpg" Content-Transfer-Encoding: base64 Content-ID: <bc88a01869b4cb6f4ea11811b5562fae> 1. Bild, Base64-codiert ...weitere Bilder ------=_REL_7a1d89cceb7746105bc99a82ec276109-- ------=_MIX_ff0fb2fd365833f450710935166116e0 Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Ein kleiner Text. ------=_MIX_ff0fb2fd365833f450710935166116e0-- Das wird in allen gängigen email-Clients wie Thunderbird, Outlook usw. richtig angezeigt. Auch bei Web.de ist die Darstellung korrekt. Nur GMX macht Probleme. Dort wird zwar der HTML-Teil korrekt angezeigt, allerdings fehlen die Bilder in der Darstellung. Ich kann mir keinen Reim darauf machen, woran es liegt. Ich habe einen Newsletter des Mabuse-Verlags als vorlage genommen, der in GMX korrekt dargestellt wird (mit eingebetteten Bildern - die Bilder werden nicht von Server nachgeladen). Und ja: Alle Bilder werden im HTML-Code als cid:blabla angegeben, genau wie in Content-ID festgelegt. Was mache ich falsch??? Bin Ratlos! -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
17.12.2007, 16:56 Uhr Gazelle Posts: 151 Nutzer |
@Mad_Dog: Du könntest eventuell probieren den "alternative" und "related" zu vertauschen, also: code:multipart/mixed multipart/alternative text/plain multipart/related text/html image/jpeg image/jpeg image/jpeg text/plain Keine Ahnung ob's was bringt. [ - Antworten - Zitieren - Direktlink - ] |
27.12.2007, 11:21 Uhr Mad_Dog Posts: 1944 Nutzer |
Hallo, Hier mal zum Vergleich die Mails, wie sie mein Programm produziert: http://w3.norman-interactive.com/files/Testmail.eml Und hier die Vorlage für mein Reverse-Engineering (ein Newsletter des Mabuse Verlags): http://w3.norman-interactive.com/files/Mabuse-Newsletter.eml Der Unterschied ist eigentlich daß der HTML-Teil bei meiner Mail Base64 codiert ist. Bei Web.de, Thunderbird und Outlook wird alles (mit Bildern) korrekt angezeigt. Aber der HTML-Teil meiner Mail wird korrekt in GMX angezeigt, nur die Bilder nicht. Der Mabuse-Newsletter wird bei allen Anbietern und Clients korrekt angezeigt. Ich verzweifel noch an diesem Scheiß.. ![]() Hat irgendjemand eine Idee, warum bei meiner Mail die Bilder in GMX nicht korrekt angezeigt werden? Was mache ich falsch? -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
27.12.2007, 11:59 Uhr Mad_Dog Posts: 1944 Nutzer |
Hier noch meine Methode (php-Code), die diese Mail zusammenbastelt:php code:--function prepareEmail() { // Base64 codierte Bilder generieren $this->pictures = $this->template->collectPictureAttatchments("--" . $this->boundary_related); // Betreff aus der Datenbank holen $this->subject = $this->offer_options->getSubject(); $this->header = "MIME-Version: 1.0n"; $this->header .= "Content-Type: multipart/mixed; "; $this->header .= "boundary="" . $this->boundary_mixed . ""n"; // $this->boundary . ""n"; //$this->header .= "ttype = multipart/alternativen"; // Neu! //$this->header .= "Content-type: text/html; charset=iso-8859-1n"; //$this->header .= "Content-Disposition: inlinen"; $this->header .= "From: " . $this->client->contact . "n"; // . "<" . $this->client->company . ">n" $this->mailSource = "This is a multi-part message in MIME format.nn"; $this->mailSource .= "--" . $this->boundary_mixed . "n" . "Content-Type: multipart/related;n" . //"ttype="multipart/alternative";n" . "tboundary="" . $this->boundary_related . ""n" . "n"; $this->mailSource .= "--" . $this->boundary_related . "n" . "Content-Type: multipart/alternative;n" . "tboundary="" . $this->boundary_alternative . ""n" . "nn"; $this->mailSource .= "--" . $this->boundary_alternative . "n" . "Content-Type: text/plain;n" . "tcharset="iso-8859-1"n" . "Content-Transfer-Encoding: quoted-printable" . "nn"; $this->mailSource .= $this->client->company . "n"; $this->mailSource .= $this->client->street . "n"; $this->mailSource .= $this->client->zipcode . " " . $this->client->city . "n"; $this->mailSource .= $this->client->country . "nn"; $this->mailSource .= "--" . $this->boundary_alternative . "n" . "Content-Type: text/html;n" . //"tcharset="iso-8859-1"n" . //"Content-Transfer-Encoding: quoted-printable" . "Content-Transfer-Encoding: base64" . "nn" . //$this->template->html_email . chunk_split(base64_encode($this->template->html_email)) . "nn"; $this->mailSource .= "--" . $this->boundary_alternative . "--n"; $this->mailSource .= $this->pictures; $this->mailSource .= "n--" . $this->boundary_related . "--nn"; $this->mailSource .= "--" . $this->boundary_mixed . "n"; $this->mailSource .= "Content-Type: text/plain; charset="iso-8859-1"n"; $this->mailSource .= "MIME-Version: 1.0n"; $this->mailSource .= "Content-Transfer-Encoding: quoted-printablen"; $this->mailSource .= "Content-Disposition: inlinenn"; $this->mailSource .= "_______________________________________________n"; $this->mailSource .= $this->client->company . "n"; $this->mailSource .= $this->client->street . "n"; $this->mailSource .= $this->client->zipcode . " " . $this->client->city . "n"; $this->mailSource .= $this->client->country . "nn"; $this->mailSource .= "--" . $this->boundary_mixed . "--nn"; } http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
27.12.2007, 14:22 Uhr Robin Posts: 1056 Nutzer |
@Mad_Dog:Zitat: Ich weiss, ist nicht hilfreich aber nicht immer liegt der Fehler bei einem selbst ![]() Versuch es doch ohne die base64-encodierung. Vielleicht ist es ja GMX-Mail, das nicht mit deiner, soweit es die anderen Programme betrifft, ja darstellbaren Mail klar kommt. Edit: Vielleicht schreibst du auch noch einen "Bugreport" an GMX. -- (Bild) http://my.morphosi.net/ morphos [ Dieser Beitrag wurde von Robin am 27.12.2007 um 14:24 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
27.12.2007, 15:46 Uhr Gazelle Posts: 151 Nutzer |
@Mad_Dog: Einen Unterschied sehe ich noch: code:This is a multi-part message in MIME format. ------=_MIX_ff0fb2fd365833f450710935166116e0 Content-Type: multipart/related; boundary="----=_REL_7a1d89cceb7746105bc99a82ec276109" ------=_REL_7a1d89cceb7746105bc99a82ec276109 Content-Type: multipart/alternative; boundary="----=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4" versuche es mal mit: code:This is a multi-part message in MIME format. ------=_MIX_ff0fb2fd365833f450710935166116e0 Content-Type: multipart/related; boundary="----=_REL_7a1d89cceb7746105bc99a82ec276109" This is a multipart message in MIME format. ------=_REL_7a1d89cceb7746105bc99a82ec276109 Content-Type: multipart/alternative; boundary="----=_ALT_f180c493dba4bde2ed453ddd7f6d8bd4" Ansonsten sehe ich keine Unterschiede. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Multipurpose Internet Mail Extension (MIME) | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |