BenBE's humble thoughts Thoughts the world doesn't need yet …

30.07.2017

CSS in HTML-Mails einbetten

Filed under: Allgemein — Schlagwörter: — BenBE @ 00:13:22

Da große Unternehmen wie die deutsche Bahn es nicht hinbekommen, ihre HTML-Mails korrekt zu bauen, möchte ich an dieser Stelle einmal so freundlich sein, und einen Trick verraten: Man kann CSS in HTML-Mails einbinden!

Nein?
Doch!
OHHH!

Geht sogar ganz einfach.

Ich mach mal ein Beispiel:

Diese Mail beinhaltet eine Liste von multipart/related-Dokumenten (dem Mail-Text als Klartext und HTML-Fassung), einem Attachment, sowie einem Stylesheet. Der Anhang selber ist ganz Standardmäßig eingebunden und somit langweilig. Spannender ist das Stylesheet. Man setze die Content-Disposition auf inline, um es als Teil des Anzeige-Dokuments zu kennzeichnen und vergebe mit Content-Id einen eindeutigen Namen (hier: style) Nun ist alles, was man im HTML-Dokument tun muss, dieses Stylesheet wie vom Internet gewohnt, mit einer Link-Direktive einzubinden. Als URI für den href-Parameter dient hierbei die URI cid:style … die auch NUR REIN ZUFÄLLIG(tm) unserer gerade eben gesetzten Content-Id entspricht. Der Rest ist Geschmackssache.

Vielleicht nicht ganz: Wenn man nämlich versucht, den Text-Anteil der Mail (also textmail.txt) naiv aus dem HTML-Teil zu generieren, gehen zumeist Dinge kaputt, weil man wie die Bahn den Inhalt irgendwelcher HTML-Tags unbeabsichtigt mit ausgibt. Besser ist es in diesem Fall, für die Text-Fassung einfach ein in bspw. Markdown oder reStructuredText formatiertes Template zu verwenden. Das sieht dann nämlich sogar ohne Stylesheet richtig ordentlich aus und hat im Gegensatz zu den Versuchen der Bahn das CSS in der Textfassung mitzusenden sogar Style. 😛

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress