Philipp Hasenfratz: HTML in Mails

Beitrag lesen

Halihallo Andy

Vielleicht noch ein kleines Design-Update: ;)

Normale Anhänge versenden:
Top-Entity (der ganze "Mailsource" selber) ist definiert als
MIME-Typ "multipart/mixed", welchem
 a) ein Entity-Typ "text/plain" => der Mailtext und
 b) ein oder mehrere andere Entit(y|ies) für das/die angehängte
    Dokument(e)
angehängt werden.

multipart/mixed
  |
  +-- text/plain   oder   text/html
  |
  +-- mehrere Entities angehängter Dokumente

HTML-Email mit plain/text-Fallback:
Top-Entity ist definiert als MIME-Typ "multipart/alternative",
welchem
 a) ein Entity des Typs "text/plain" und
 b) ein Entity des Typs "text/html"
angehängt werden.

multipart/alternative
 |
 +-- text/plain
 |
 +-- text/html

der Mail-Client wählt dann dasjenige Entity aus, dessen MIME-Typ er
verarbeiten und darstellen kann.

HTML-Email mit eingefügten Bildern oder anderen Ressourcen:
Top-Entity ist definiert als MIME-Typ "multipart/related", welchem
 a) ein Entity des Typs "text/html" und
 b) einem oder mehreren Entities der Ressourcen
angehängt werden.
Jedem "inline"-Ressourcen Entity (Bild/Sound/...), welches in den
HTML-Quelltext eingebettet werden soll, muss eine 'Content-Id' im
Header zugewiesen werden, welche im HTML-Source über z.B.
   <img src="cid:<ressource15>">
referenziert wird.

multipart/related
 |
 +-- text/html
 |     |
 |     +-- Quelltext: z.B. <img src="cid:<ressource16>">
 |
 +-- z.B. image/gif
 |     |
 |     +-- "Content-Id: <ressource15>" im Entity-Header
 |
 +-- z.B. image/jpeg
       |
       +-- "Content-Id: <ressource16>" im Entity-Header

HTML-Mail mit optionalem Text-Fallback mit "inline-Ressourcen":
Gleich, aber ein multipart/alternative "vorgeschalten", welchem noch
ein ganz normaler "text/plain" Part (die Alternative für z.B.
Textbasierte Mailclients) angefügt ist.

multipart/alternative
 |
 +-- text/plain
 |
 +-- multipart/related
       |
       +-- text/html
       |
       +-- image/gif
       |
       +-- ...

HTML-Mail mit opt. Text-fallback mit inline-Ressourcen und normalen
Attachments:

- Huch, das habe ich nie für Outlook zum Laufen gebracht, denn
   Outlook zumindest (andere hab ich gar nicht mehr getestet)
   scheint damit mächtig Probleme zu haben.

Wie gesagt: Hier habe ich bereits mehreres versucht und bin bisher
immer gescheitert. HTML mit Text-Fallback + Inline-Ressourcen und
normalen Attachments sind anscheinend etwas "tricky".

Viele Grüsse

Philipp