PHP Komplette HTML Seite als mail verschicken

mercsen

Lt. Commander
Registriert
Apr. 2010
Beiträge
1.679
Moin moin liebe CB gemeinde,

ich plage mich wiedereinmal mit PHP rum und kann im netz keine befridigende Lösung finden, weshalb ich mich wiedereinmal an euch wende.

Mein Ziel: Eine generierte HTML Seite so wie sie erzeugt wird (inkl. stylesheet) per mail zu versenden.

Das ganze klingt in der Theorie ja schön leicht, einfach mit ob_start() die ausgabe abfangen und den so erzeugten Text anschließend per mail senden.

Leider klappt es nicht so einfach :(

Ich bekommees zwar hin das der komplette HTML Code verschickt wird und habe z.B. in den css. datein relative in ABsolute pfade geändert, dennoch bekomme ich als empfänger nur unformatiere e-mails. Lasse ich mir den inhalt anzeigen sehe ich das er alles HTML mitschickt und auch nicht etwa < durch %gt; ersetzt.

Meine vermutung war jetzt das z.b. gmail alles entfernt und guckt man sich mal den quellcode von der anzeige an wunderst mich nicht. Allerdings schafft Microsoft es ja auch mit komplett formatiere Mails zu schicken, allerdings ist der gesamte inhalt dort base64 encdoiert, bzw. halt aller inhalt als inline anhang geschickt, das wollte ich ja nun eigentlich nicht machen.

Ist das aber meine einzige möglichkeit? Oder gibt es da einen schöneren weg?

P.S.
Ja ich habe den Content-Type auf text/html eingestellt ;)

P.P.S.
in thunderbrid wird es z.b. richtig angezeigt, wenn man einstellt "unsicheren" inhalt nachladen..

P.P.P.S.
ich habe nix böses vor sondern versuche einen newsletter umszusetzen ;)
 
tja zwischen HTML das im Browser dargestellt werden kann und solches das in einem Mail Programm dargestellt werden kann, liegen Welten.
 
das war jetzt natürlich super hilfreich und war mir auch klar.

Ich will wissen ob ich den mail programmen im header zb mitteilen kann das die Seite so wie sie geschickt wirde angezeigt werden soll, denn gucke ich sie im Browser an (z.b. über gmail) dann weiß ich das es rein tehoretisch klappen müsste, nur das google die mails auseinander genommen hat. Kann die sicherheitsbedenken ja verstehen, aber es muss doch gehen Maisl so wie wie kommen zu lesen. Und wenn es nur der user selber einstellen muss, meine frage ist halt ob es sich lohnt da weiter zu forschen oder ob man das vergessen kann und man den ganzen mist wohl kodiert verschicken muss.
 
ja, man sollte das schon angeben
Code:
"Content-Type:  text/html\n"
wenn ich eine html mail verschicke, packe ich das CSS immer direkt mit
Code:
<style>
</style>
in den html code rein
 
danke für das aufmerksame lesen, wie ich bereits im ERSTEN post gesagt habe....

P.S.
Ja ich habe den Content-Type auf text/html eingestellt

und wie ebenfalls gesagt: In externen mail programmen kein problem, sofern man erlaubt die inhalte nach zu laden.

die CSS Datei driekt in den COde zu schreiben birngt auch nix, da ja der client (in diesemfall gmail) die anzeige zerstückelt.

habe nun mal folgendes umgesetzt; http://www.evocomp.de/beispiele/php/mail-6.html

klappt aber auch nur in desktop clienten. Und wie gesagt, die e-mails die ich von Microsoft bekomme werden schön formatiert dargestellt und ich denke die haben dort die von oben genannte methode des links bentutzt da deren mails auch nur aus anhängen bestehen (also leere body, nachricht ist im header), kann das aber leider nicht reproduzieren :-/
 
Hallo,

GMail, teilweise auch andere website-basierte eMail-Anwendungen, beschneiden den HTML-eMails massiv. Ich habe mich vor kurzem ebenfalls damit ärgern müssen, da auf verschiedenen Smartphones meine Info-Dienstleistungen nicht immer 100%ig angezeigt wurden. Gmail baute den größten Bockmist den man sich vorstellen kann. So werden von gmail u.a. Stylesheets unzureichend unterstützt. Webseiten die komplett auf Tabellen verzichten und mit DIV's gebaut sind, werden von Gmail bis zur Unkenntlichkeit verstümmelt, selbst wenn Du Dir in Gmail die Vollansicht anzeigen lassen willst. Auch Outlook für Office beschneidet den HTML-Code bzw. den CSS-Teil.

Daher aus Kompatibilitätsgründen, und nur deswegen, am besten mit Tabellen arbeiten. Die Tabellen kannst Du dann weiterhin per CSS formatieren, wobei nicht alle Styles funktionieren. Tabellenhöhen und -breiten am besten immer innerhalb der Tabelle und der Zellen/Reihen mit angebeben.

Achte darauf, dass das Dokument im richtigen Charakterset geschrieben ist und weise der Webseite den richtigen Charset zu. Manche Editoren (notepas++ oder pspad) wandeln vom ANSI Zeichensatz in UTF-8 korrekt um. Verwende am besten UTF-8. Dann musst Du Dich nicht mehr um Kodierung von Umlauten kümmern.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Es reicht nicht, einfach den Charset in den Headbereich zu setzen, das Dokument muss selbst auch im UTF-8 vorliegen. Sonst gibts Zeichensalat bei Umlauten und Sonderzeichen.

Den Versand der HTML-Datei leitest Du am besten mit der sehr guten Mailerklasse phpmailer ein.
 
Zuletzt bearbeitet:
UTF-8 nutze ich immer ;) Aber hab ich auch im header noch mitgeschickt. Und ja auch das HTML doument hat UTF8 und ich lasse sogar die ausgaben aus der DB nochmal nach UTF8 kovertieren, daran liegts also nicht, in den desktop cleinten wirds auch problem los dargestellt.

Das ich jetzt tabellen benutzen soll passt mir gar nicht! :( Habe extra versucht tables zu vermeiden und der newslette lässt das jetzt auch nicht mehr ohne weiteres zu, da das adminpanel mit dem der erstellt wird jetzt nicht nochmal neugeschrieben wird xD

Wäre mein Kunde net so stur würde ich ja den leuten nur nen link schicken :p

Aber um mal zu zeigen was ich meine wie MS mails aussehen habe ich ein Bild angehängt. Der Text in der mail ist makierbar aber irgendwo in den boundarys verschnlüsselt, genauso wie die grafiken etc. Vlt. muss man dann grafiken erzeugen aus den NL und diese dann verschicken, oder aber nen PDF, aber beides nicht die wege die ich gehen wollte.

Also kann ich mein vorhaben wohl vergessen :-/

Ich würde mich ja auch damit zufrieden geben wenigstens farben zu setzen oder größen anzupassen, aber es wird ja einfach alles entfernt :-/
 

Anhänge

  • xbox.png
    xbox.png
    430 KB · Aufrufe: 358
HTML + Mail passen quasi überhaupt nicht zusammen, da wirst du dir entweder den Schädel einrennen oder gleich alles aufs Minimum runter brechen. Die Liste dessen, was alle gängigen Maildienste (Webmail + lokale Software) können, ist evtl. 1/20 von dem, was man eigentlich gern nutzen würde.

Was z.B. alles nicht sauber geht:
- CSS - Positionierung
- CSS - Backgroundimage (Outlook 2k3 kanns, 2k7 und neuer nicht mehr. Damit ist der Markt im Eimer). Farbe geht
- jegliche Art von Video, egal ob mit Flash, QT oder HTML5
- Schriftart-Manipulation jenseits der websicheren Fonts. Kein @fontface, kein Cufon, nix....
- externe Stylesheets... Styles immer direkt mitschicken

Es gibt nur eine Methode, HTML-Mails halbwegs sauber zu versenden: Tabellen mit Images. Das ist zwar tragisch, aber daran kann man nix ändern. Sogar richtig anständige Software wie der TBird macht beim Rendering ordentliche Fehler
 
Überkinger schrieb:
Es gibt nur eine Methode, HTML-Mails halbwegs sauber zu versenden: Tabellen mit Images. Das ist zwar tragisch, aber daran kann man nix ändern. Sogar richtig anständige Software wie der TBird macht beim Rendering ordentliche Fehler

Ja, das ist leider so. Daher müssen Tabellen her, ohne wenn und aber. Ich selbst beziehe einige Newsletters von großen Firmen ala IBM, SAP usw. Die verwenden alle Tabellendesign in den Newsletter, teilweise mit extern eingebundenen Grafiken. Zum OFF-Line lesen auf Smartphones sind die Newsletter dann allerdings auch nicht geeignet.

Komplexer wir es, wenn auch eingebundene Grafiken dazukommen. Soll der Newsletter per eMail verschickt und auf einer Webseite verfügbar sein, muss man sogar mit Platzhaltern arbeiten und die Images in zwei eigene Dateien plazieren.

Irgend ein Mail-Client wird dann trotzdem meckern und man ist auch nicht davor gefeit, dass topaktuelle Proodukte Mist machen.
 
HTML + Mail passen quasi überhaupt nicht zusammen, da wirst du dir entweder den Schädel einrennen oder gleich alles aufs Minimum runter brechen. Die Liste dessen, was alle gängigen Maildienste (Webmail + lokale Software) können, ist evtl. 1/20 von dem, was man eigentlich gern nutzen würde.
wie ich es schon versucht habe in #2 begreiflich zu machen.
 
Überkinger schrieb:
Komplexer wir es, wenn auch eingebundene Grafiken dazukommen. Soll der Newsletter per eMail verschickt und auf einer Webseite verfügbar sein, muss man sogar mit Platzhaltern arbeiten und die Images in zwei eigene Dateien plazieren.

Dafür gibts ne simple Lösung: Nimm ein gutes CMS. Auch wenn die Newsletter-Funktion von Contao eher einfach gestrickt ist (aber hey, wozu gibts Erweiterungen wie Avisota?), die Fähigkeit den Newsletter direkt als Artikel in der Webseite anzuzeigen ist einfach geil.
 
Zurück
Oben