Hi,
Also ich würde gerne eine HTML-Mail mit alternativem Klartext-Teil versenden.
hast du ja nun. :-)
$message = "
--001636c59763ff4b2e047a4922b5
Content-Type: multipart/alternative; boundary=001636c59763ff4b29047a4922b4--001636c59763ff4b29047a4922b4
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Ah, jetzt ist es besser, nun ist auch der Content-Type für die einzelnen Parts da. Und multipart/alternative für die Gesamtnachricht ist dann auch richtig, wenn die einzelnen Teile tatsächlich alternativ sind.
<p>Ecard für <a href="http://www.ecard.com" target="_blank">Dich</a>.</p>
Gr=FC=DFe, Alex
Was nun weder in Gmail noch in Outlook2007 funktioniert in der HTML-Version, ist der Link auf ecard.com. Witzigerweise steht im Quellcode der von Outlook abgerufenen Mail plötzlich: <a href=ttp://www.ecard.com" .. Kein Wunder, dass der Link nicht mehr funktioniert.
Richtig, kein Wunder. Du hast als Transfer-Encoding "quoted-printable" vereinbart, das heißt, alle Zeichen, die in ASCII nicht darstellbar sind, werden mit ihrem Hex-Code und einem vorangestellten Gleichheitszeichen dargestellt. Das hat natürlich zur Konsequenz, dass das "=" als Escape-Zeichen selbst auch escapet werden muss. Richtig wäre also:
<a href="http://www.ecard.com" target=3D"_blank">Dich</a>
Dann klappt's auch mit dem Nachb^WLink. ;-)
Ach so, das mit dem eingebetteten Bild ...
Ja, da brauchst du zunächst mal noch eine Verschachtelungsebene (schematisch):
Content-Type: multipart/alternative; boundary="boundary(1)"
--boundary(1)
Content-Type: text/plain
(Text)
--boundary(1)
Content-Type: multipart/related; boundary="boundary(2)"
--boundary(2)
Content-Type: text/html
(HTML)
--boundary(2)
Content-Type: image/*
Content-ID: <image-identifier>
(Bild, üblicherweise base64-codiert)
--boundary(2)--
--boundary(1)--
Die Einrückung darf im Mail-Quelltext natürlich nicht sein (Header müssen am Zeilenanfang stehen); ich hab's hier nur gemacht, um die Verschachtelung besser zu zeigen. Beachte außerdem, dass du zwei verschiedene Boundaries brauchst.
Das Bild bekommt dann einen frei wählbaren Identifier, wie oben angedeutet, und wird im HTML-Quellcode mit src="cid:image-identifier" referenziert.
So long,
Martin
Heutzutage gilt ein Mann schon dann als Gentleman, wenn er wenigstens die Zigarette aus dem Mund nimmt, bevor er eine Frau küsst.
(Barbra Streisand, US-Schauspielerin)