Fred Furunkelstein 2011: mail() stellt kein html dar, aber warum?

Beitrag lesen

Hallo Community

Hallo Du!

Bevor Du dDich an die Lösung mit dem von Sven Rautenberg vorgeschlagenem SWIFT-Mailer machst solltest Du mal den Quelltext einer HTML-Formatierten Nachricht ansehen.

Der sieht ETWA so aus:

Content-Type: multipart/alternative;
boundary="_Trenner1_"
--_Trenner1_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hier der Text im Text-Format für die Benutzer, welche das HTML nicht wollen.

--_Trenner1_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ganz wichtig:
Hier der Text im Text-Format für die Benutzer, welche das HTML nicht wollen.

--_Trenner1_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
   <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-1">
</head>
<body>
<h1>Ganz wichtig:</h1>
<p>Hier der Text für Outlook- und HTML-Junkies</p>
</body>
--_Trenner1_--

'_Trenner1_' repräsentiert hier einen regelmäßig längeren, eindeutigen String, der zumeist aus Ziffern und Buchstaben besteht und auch dann noch eindeutig sein soll, wenn tausende(!) Mails in einer Maildatei zusammengefasst werden oder das Mail ein paar mal hin- und hergeht. Also eine Zeitkomponente, eine ausreichend große Zufallskomponente, beide womöglich gesalzen und "hashed" (MD5, SHA...)

'_Trenner1_' kann also so aussehen:
_FACD2D94015A1F40A100486071421C910845BB0CF6_

Axhte auf die beiden Minus-Zeichen vor _Trenner1_ und auf die beiden Minuszeichen nach dem letzten Trenner.

Wenn Du noch Grafiken als Ressource beifügen willst wird es geringfügig komplizierter.
Ach so: Machst Du das "zu Fuß", dann musst Du auch für das Content Encoding und das Worwrap (in dieser Reihenfolge) kümmern.

Mehr steht in den RFC zum Format von Mails.

fred