php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 26 Stimmen, 4,54 durchschnittlich.
  #1 (permalink)  
Alt 18-09-2006, 22:48
tafkame
 Newbie
Links : Onlinestatus : tafkame ist offline
Registriert seit: Apr 2006
Ort: Aachen
Beiträge: 19
tafkame ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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"
Mit Zitat antworten
  #2 (permalink)  
Alt 19-09-2006, 03:13
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Hmm. Mit Dateinamen statt CID probiert?
Mit Zitat antworten
  #3 (permalink)  
Alt 19-09-2006, 13:27
tafkame
 Newbie
Links : Onlinestatus : tafkame ist offline
Registriert seit: Apr 2006
Ort: Aachen
Beiträge: 19
tafkame ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von pekka
Hmm. Mit Dateinamen statt CID probiert?
Ja, funktioniert leider auch nicht.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-09-2006, 13:55
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Mmmmmmm! Entferne mal das Leerzeichen zwischen "url" und der Klammer. Manche CSS-Parser sind da sehr, sehr streng.
Mit Zitat antworten
  #5 (permalink)  
Alt 20-09-2006, 13:52
tafkame
 Newbie
Links : Onlinestatus : tafkame ist offline
Registriert seit: Apr 2006
Ort: Aachen
Beiträge: 19
tafkame ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #6 (permalink)  
Alt 20-09-2006, 14:38
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
**********
Mit Zitat antworten
  #7 (permalink)  
Alt 20-09-2006, 20:43
tafkame
 Newbie
Links : Onlinestatus : tafkame ist offline
Registriert seit: Apr 2006
Ort: Aachen
Beiträge: 19
tafkame ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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??
Mit Zitat antworten
  #8 (permalink)  
Alt 20-09-2006, 20:56
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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).
Mit Zitat antworten
  #9 (permalink)  
Alt 21-09-2006, 12:01
tafkame
 Newbie
Links : Onlinestatus : tafkame ist offline
Registriert seit: Apr 2006
Ort: Aachen
Beiträge: 19
tafkame ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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.
Mit Zitat antworten
  #10 (permalink)  
Alt 27-08-2008, 07:58
iRaS
 Newbie
Links : Onlinestatus : iRaS ist offline
Registriert seit: Sep 2005
Ort: Munich, Germany
Beiträge: 6
iRaS ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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

Geändert von iRaS (27-08-2008 um 08:17 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 27-08-2008, 08:00
iRaS
 Newbie
Links : Onlinestatus : iRaS ist offline
Registriert seit: Sep 2005
Ort: Munich, Germany
Beiträge: 6
iRaS ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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: info@pb-systems.de
Delivered-To: service@pb-systems.de
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:
http://dev.w00tserver.org/de/gaestebuch/

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)

Geändert von iRaS (27-08-2008 um 08:14 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 27-08-2008, 09:43
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:42 Uhr.