Mime-Multipart-Mail mit über CID eingebundenen Bildern als background (CSS) geht nich

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mime-Multipart-Mail mit über CID eingebundenen Bildern als background (CSS) geht nich

    Ich versuche, für einen Newsletter, eine HTML Email zu bauen.
    Eines der DIVs soll ein Hintergrundbild haben, welches über den CSS-Style "background-image: url(cid:irgendwas);" gesetzt wird.
    Der HTML Code ist in quoted-printable und das JPEG-Image in base64 codiert.

    In 3 gängigen Email Clients (Thunderbird, TheBat!, Outlook Express) wird das Hintergrundbild nicht angezeigt, sondern als Attachment ausgewiesen. Dieses kann ich auch öffnen und das Bild wird ordnungsgemäß angezeigt. Wenn ich das Bild nicht als Hintergrund sondern als Normales Objekt über <img src="cid:irgendwas"> einbinde, wird es auch angezeigt, ich brauche es aber als Background.

    Das merkwürdige ist: z.B. der nervige Newsletter von GMX funktioniert. Und dort werden auch Bilder über CID als Background eingebunden.

    Ich weiss nicht mehr weiter. Hier der generierte Source der Email:
    Das codierte Image habe ich aus Platzgründen weg gelassen. Der komplette Source inkl. Image liegt hier

    Bitte um Hilfe!!!

    -------------------------

    Received: from spooler by localhost (Mercury/32 v4.01b); 18 Sep 2006 22:27:59 +0200
    X-Envelope-To: <postmaster@localhost>
    Return-path: < postmaster@localhost>
    Received: from xxxxxx-pc (127.0.0.1) by localhost (Mercury/32 v4.01b) ID MG000006;
    18 Sep 2006 22:27:58 +0200
    Date: Mon, 18 Sep 2006 22:27:58 +0200
    Subject: blabla Newsletter
    To: postmaster@localhost
    MIME-Version: 1.0
    From: postmaster@localhost
    Content-Type: multipart/related; boundary="blablaboundary=-1138024382-5275"

    --blablaboundary=-1138024382-5275
    Content-Type: text/html; charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3Diso-8=
    859-1">
    <title>blabla Newsletter</title>
    </head>
    <body style=3D"background-color: #000000; padding: 0;">
    <div style=3D"background-image: url (cid: imageheader); width: 676px; h=
    eight: 490px;">
    <div style=3D"width: 1px; height: 230px;"></div>
    <div style=3D"width: 580px; height: 180px; margin-left: 45px; padding=
    : 2px 2px 2px 2px; overflow: auto; color: #FFFFFF; font-family: Verdana; te=
    xt-decoration: none; font-size: 11px;">
    Der neue Red Hat Application Stack bettet die wichtigsten=
    JBoss-Anwendungen JBoss Application Server und JBoss Hibernate in eine int=
    egrierte Software-Umgebung ein, die das Betriebssystem Red Hat Enterprise L=
    inux und die Open-Source-Datenbanken MySQL und PostgreSQL umfasst. F&uuml;r=
    einen Preis ab 2000 US-Dollar bietet Red Hat ein Jahr Support, Updates und=
    Upgrades f&uuml;r den gesamten Software-Stack. Der Red Hat Application Sta=
    ck ist &uuml;ber das Red Hat Network erh&auml;ltlich.<p>Mehr Infos wie imme=
    r auf der <a style=3D"color: #c09837; font-family: Verdana; text-decoration=
    : none; font-size: 11px;" href=3D"http://www.blabla.de" target=3D"_blank=
    ">blabla Homepage</a></p>
    </div>
    <div style=3D"margin: 10px 0 0 45px; color: #FFFFFF; font-fam=
    ily: Verdana; text-decoration: none; font-size: 11px;">
    Abmeldung vom blabla Newsletter &uuml;ber diesen <a style=3D"c=
    olor: #c09837; font-family: Verdana; text-decoration: none; font-size: 11px=
    ;" href=3D"http://localhost/blabla2006/trunk/site/" target=3D"_blank">De=
    aktivierungslink</a>
    </div>
    </div> =20
    </body>
    </html>
    =0D

    --blablaboundary=-1138024382-5275
    Content-ID: <imageheader>
    Content-Type: image/jpeg
    Content-Transfer-Encoding: base64
    Content-Disposition: inline; filename="mailheader.jpg"

  • #2
    Hmm. Mit Dateinamen statt CID probiert?

    Kommentar


    • #3
      Original geschrieben von pekka
      Hmm. Mit Dateinamen statt CID probiert?
      Ja, funktioniert leider auch nicht.

      Kommentar


      • #4
        Mmmmmmm! Entferne mal das Leerzeichen zwischen "url" und der Klammer. Manche CSS-Parser sind da sehr, sehr streng.

        Kommentar


        • #5
          Das hab ich mir auch schon gedacht und hatte extra mal die Leerzeichen eingefügt. Vorher war es ohne und hat leider auch nicht funktioniert.

          Sonst keiner mehr eine Idee??

          Um das mal auszuprobieren, zu testen, kann man den Quelltext der Mail als .eml Datei speichern und mal im Emailclient aufrufen

          Kommentar


          • #6
            habe schon öfter gelesen, dass es dort css probleme gibt.


            kannst du das bild nicht über

            Code:
            <BODY BACKGROUND="cid:imageheader">
            einbinden? was spräche dagegen?
            **********
            arkos
            **********

            Kommentar


            • #7
              Hab ich gerade probiert, geht leider auch nicht.
              Da ist doch bestimmt irgend ein Fehler drin, den ich übersehen habe.

              Hat mal jemand versucht, den Quelltext als .eml zu speichern und in seinem Emailclient aufzurufen??

              Kommentar


              • #8
                Original geschrieben von tafkame
                Hab ich gerade probiert, geht leider auch nicht.
                Da ist doch bestimmt irgend ein Fehler drin, den ich übersehen habe.

                Hat mal jemand versucht, den Quelltext als .eml zu speichern und in seinem Emailclient aufzurufen??
                Ja hab ich - habe das Bild aber gar nicht zu sehen bekommen, egal ob als background oder img (OE6).

                Kommentar


                • #9
                  Aber das Bild wird als Attachment angezeigt oder?
                  Ich versteh das echt nicht, wieso das nicht funktioniert. Wenn ich vergleiche mit Newslettern von z.B. GMX, die machens genauso und alles ist bestens.

                  Kommentar


                  • #10
                    sorry fürs ausgraben des alten beitrags, aber das gleiche problem habe ich auch. naja zumindest fast das gleiche. habt ihr dazu eine lösung gefunden oder wusste keiner mehr weiter?

                    ich schicke meine mail 8bit encoded im charset latin-1 und benutze dafür den phpmailer.

                    ich habe extra die klasse extended und die MsgHTML-Methode überschrieben:
                    PHP-Code:
                    function MsgHTML($message$text$basedir '') {
                        
                    preg_match_all("/(src=\"|background=\"|url\(')(.*)(\"|'\))/Ui"$message$images);
                        if(isset(
                    $images[2])) {
                          foreach(
                    $images[2] as $i => $url) {
                            
                    // do not change urls for absolute images (thanks to corvuscorax)
                            
                    if (!preg_match('/^[A-z]+:\/\//',$url)) {
                              
                    $filename basename($url);
                              
                    $directory dirname($url);
                              if (
                    substr($directory01) == '/' && !$basedir)
                                
                    $directory $_SERVER["DOCUMENT_ROOT"] . substr($directory1);
                              (
                    $directory == '.')?$directory='':'';
                              
                    $cid 'cid:' md5($filename);
                              
                    $fileParts split("\."$filename);
                              
                    $ext $fileParts[1];
                              
                    $mimeType $this->_mime_types($ext);
                              if ( 
                    strlen($basedir) > && substr($basedir,-1) != '/') { $basedir .= '/'; }
                              if ( 
                    strlen($directory) > && substr($basedir,-1) != '/') { $directory .= '/'; }
                              
                    //$this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType);
                              
                    if ( $this->AddEmbeddedImage($basedir.$directory.$filenamemd5($filename), $filename'base64',$mimeType) ) {
                                
                    $message preg_replace("/".preg_quote($images[0][$i], '/')."/Ui"$images[1][$i].$cid.$images[3][$i], $message);
                              }
                            }
                          }
                        }
                        
                    $this->IsHTML(true);
                        
                    $this->Body $message;
                        
                    $this->AltBody $text;
                      }  
                    // END function 
                    zuvor wurden nur src="" und background="" als embededded image angelegt. jetzt auch url('')...

                    Das funktioniert auch wunderbar im Image-Tag (src="") und im background einer Tabellen-Zelle (background="") (Anmerkung: divs und floating mag outlook 2007 überhaupt nicht - deswegen tabellen). Aber wenn ich es im stylesheet mit url('') angebe oder direkt im entsprechenden element mit style="background: url('').." wird es nur als attachment angezeigt.

                    Ich habe das zwar nur mit thunderbird getestet fürchte aber, dass auch andere clients dies nicht unterstützen.

                    hier mal der quellcode meiner email (das background in der oberen zelle als background="" eingebunden, aber das icon hinter externen links über stylesheet und url('')... (beitrag zulang - siehe nächsten beitrag...)
                    Zuletzt geändert von iRaS; 27.08.2008, 08:17.

                    Kommentar


                    • #11
                      Code:
                      From - Wed Aug 27 07:18:34 2008
                      X-Account-Key: account2
                      X-UIDL: UID21089-1170455198
                      X-Mozilla-Status: 0001
                      X-Mozilla-Status2: 10000000
                      X-Mozilla-Keys:                                                                                 
                      Return-Path: <noreply@my-first-domain.de>
                      X-Original-To: [email]info@pb-systems.de[/email]
                      Delivered-To: [email]service@pb-systems.de[/email]
                      Received: from dev.w00tserver.org (port-83-236-2-109.dynamic.qsc.de [83.236.2.109])
                      	by my-first-domain.de (Postfix) with ESMTP id 5881D4E38DF
                      	for <info@pb-systems.de>; Wed, 27 Aug 2008 07:18:14 +0200 (CEST)
                      Date: Wed, 27 Aug 2008 07:18:14 +0200
                      To: iRaS <info@pb-systems.de>
                      From: Thomas Flori <noreply@my-first-domain.de>
                      Subject: =?iso-8859-1?Q?Dein_G=E4stebucheintrag_auf_dev.w00tserver.org_wurde_beant?=
                       =?iso-8859-1?Q?wortet?=
                      Message-ID: <fb8dd7ad0a15a55ca87a639816f339b9@dev.w00tserver.org>
                      X-Priority: 3
                      X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.2]
                      MIME-Version: 1.0
                      Content-Type: multipart/related;
                      	type="text/html";
                      	boundary="b1_fb8dd7ad0a15a55ca87a639816f339b9"
                      
                      
                      --b1_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: multipart/alternative;
                      	boundary="b2_fb8dd7ad0a15a55ca87a639816f339b9"
                      
                      --b2_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: text/plain; charset = "iso-8859-1"
                      Content-Transfer-Encoding: 8bit
                      
                      
                      Hallo iRaS,
                      
                      dein Gästebucheintrag auf dev.w00tserver.org wurde soeben beantwortet.
                      
                      Hier kannst du die Antwort nachlesen:
                      [url]http://dev.w00tserver.org/de/gaestebuch/[/url]
                      
                      Viele Grüße
                      Dein Team von dev.w00tserver.org
                      
                      
                      --b2_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: text/html; charset = "iso-8859-1"
                      Content-Transfer-Encoding: 8bit
                      
                      
                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                      <html>
                       <head>
                        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                        <meta http-equiv="Content-Script-Type" content="text/javascript">
                        <style type="text/css"><!--
                      
                      body
                      { margin: 0px
                      ; padding: 0px
                      ; font-family: Tahoma, Arial, Helvetica, sans-serif
                      ; color: #000000
                      }
                      
                      a
                      { color: #999999
                      ; text-decoration: underline
                      }
                      
                      a:hover
                      { color: #555555
                      ; text-decoration: none
                      }
                      
                      body, td
                      { font-size: 11px
                      ; font-family: Tahoma, Arial, Helvetica, sans-serif
                      }
                      
                      h1, h2, h3, h4, h5, h6
                      { font-family: Tahoma, Arial, Helvetica, sans-serif
                      ; font-weight: normal
                      ; margin: 0 0 10px 0
                      ; padding: 0px
                      }
                      
                      h1
                      { font-size: 22px
                      }
                      
                      h2
                      { font-size: 20px
                      }
                      
                      h3
                      { font-size: 18px
                      }
                      
                      h4
                      { font-size: 16px
                      }
                      
                      h5
                      { font-size: 14px
                      }
                      
                      h6
                      { font-size: 12px
                      }
                      
                      ol, ul, p, div
                      { margin: 0px
                      }
                      
                      a.extern
                      { padding-right: 12px
                      ; background-image: url('cid:0825a05b1b020834db80050df59c944b');
                      ; background-position: right 2px
                      ; background-repeat: no-repeat
                      }
                      
                        //--></style>
                       </head>
                       <body>
                        <table width="800" border="0" cellspacing="0" cellpadding="0" style="border: #555555 solid; border-width: 0px 1px 1px 1px">
                         <tr>
                          <td height="100" style="background: url('cid:07686ef930b4c3837f7df800b871fd10'); background-repeat: repeat-x; text-align: right; vertical-align: top"><img src="cid:f121d135f39f03e48da5fe5e8ced5b0a" border="0" alt="Portal Builder Logo"></td>
                         </tr>
                         <tr>
                          <td style="padding: 20px">
                      
                      Hallo iRaS,<br><br>dein Gästebucheintrag auf dev.w00tserver.org wurde soeben beantwortet.<br><br>Hier kannst du die Antwort nachlesen:<br><a class=extern target=_blank href="http://dev.w00tserver.org/de/gaestebuch/">dev.w00tserver.org/de/gaestebuch/</a><br><br>Viele Grüße<br>Dein Team von dev.w00tserver.org
                      
                          </td>
                         </tr>
                        </table>
                       </body>
                      
                      </html>
                      
                      
                      
                      --b2_fb8dd7ad0a15a55ca87a639816f339b9--
                      --b1_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: image/png; name="extern.png"
                      Content-Transfer-Encoding: base64
                      Content-ID: <0825a05b1b020834db80050df59c944b>
                      Content-Disposition: inline; filename="extern.png"
                      
                      iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
                      bWFnZVJlYWR5ccllPAAAAKdJREFUeNpi/P//PwMyiIyMRBWAAZBCGG5oaLje399/HFkMhCMiIlAF
                      YIIgDehiLCEhIShWsbKyMjg5Oe3DsDo4OPg/ss5Dhw5dALGB9FSYyWATkT2RlZU1zdbWNvvw4cMX
                      pk2bpg8SnzBhwnEQzQRTCFJ09uxZI6CiqSBFv3//Zli+fDnjx48fBUA0itUg60DWgNjI4uAgRBeA
                      YXRxsBvRfY4NAAQYAJZTsgQ1pFecAAAAAElFTkSuQmCC
                      
                      
                      --b1_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: image/gif; name="background.gif"
                      Content-Transfer-Encoding: base64
                      Content-ID: <07686ef930b4c3837f7df800b871fd10>
                      Content-Disposition: inline; filename="background.gif"
                      
                      R0lGODlhAQBkAOYAAPv9/v/47vP3+v/Zrs3Q1fb5/M7S1v/ctu3x9sTHytrf5J+fn9PX29ba36Ok
                      pOXp7//26MnN0e7y9/n8/f+jR/H1+Oft8f/NmP/y4tTZ3aemqKusrre5u//ozePo7f/s1P/68/3+
                      /v/UpdDT2f/kxsbKzfDz96+wscDDxv7+//L2+uHm6p2dnaGhovv8/tHW2ampq9fc4fX4+/+oUpub
                      m9/k6Ont8v/gvv+9ev+vXv/+/P+2bPj6/dne4uLn6////9zg5f/997S2uP/v3Pz9/t3i5+rv8//F
                      ibGytOvw9Obr7/f5/bzAwrq9v/+ePgBRj5mZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
                      BAAAAAAALAAAAAABAGQAAAdbgFCCUDQsCy0OGjAbJ0hCHE1MKAklEQQGIy8MGQ0xPQpARTUrPh4P
                      ShY2RkkIEiYVKgIyBUs8Ey4ARCEpPzpBIAEQGEMfHSQ3BwMiF0c4OzkzFE7T1NNP19jZgQA7
                      
                      
                      --b1_fb8dd7ad0a15a55ca87a639816f339b9
                      Content-Type: image/jpeg; name="logo.jpg"
                      Content-Transfer-Encoding: base64
                      Content-ID: <f121d135f39f03e48da5fe5e8ced5b0a>
                      Content-Disposition: inline; filename="logo.jpg"
                      
                      ...
                      
                      --b1_fb8dd7ad0a15a55ca87a639816f339b9--
                      das logo könnt ihr euch hier runterladen und base64 codiert einfügen (ist einfach zu groß für diesen beitrag)
                      Zuletzt geändert von iRaS; 27.08.2008, 08:14.

                      Kommentar


                      • #12
                        So leid es mir tut, aber Backgroundimages in Mails kannste knicken!
                        Nagut, in manchen Clients mag es funktionieren, aber der moderne Outlook sperrt sich. Mir ist keine Mehode bekannt ihn zu überreden.

                        Per img Tag eingebundene Bilder stellt er problemlos dar. Andere Bilder kommen als Anhang.

                        Hier ist der Grund dafür:
                        http://msdn.microsoft.com/en-us/library/aa338201.aspx
                        Wir werden alle sterben

                        Kommentar

                        Lädt...
                        X