Hallo,
Versende ich eine automatisch generierte HTML-Mail durch dieses PHP-Script, wird eine Mail versand, die in Gmail, Web.de und einem Webinterface eines anderen Mailproviders richtig dargestellt wird.
aber vermutlich nur deshalb, weil innerhalb eines solchen Notzugangs über ein Webmail-Interface sowieso der Defaultkontext "HTML" gilt.
In Outlook 2007 wird die "HTML-Mail"-Deklaration im Header bzw. Content ignoriert und "Nur-Text" ausgegeben:
Du hast keine "HTML-Mail"-Deklaration, und für den *Inhalt* der Nachricht darf sich ein Mailclient nicht interessieren, um zu entscheiden, wie er darzustellen ist. Da muss ich Outlook ausnahmsweise Recht geben; das würde ein richtiger Mailclient auch nicht anders machen.
Nur in einem Punkt macht Outlook anscheinend Unsinn: Nach dem von dir geposteten Quelltext dürften keine Headerzeilen als Nachrichtentext ausgegeben werden, es sei denn, du hast irrtümlich eine Headerzeile mit *zwei* Zeilenumbrüchen abgeschlossen.
Quellcode:
Wenn das der vollständige Quellcode ist, mit dem die Nachricht generiert wird, dann ist die resultierende Nachricht tatsächlich fehlerhaft.
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/related; boundary=0003255546b6117da7047a492fc7";
Wieso deklarierst du die Mailnachricht als multipart/*, wenn sie dann doch nur aus *einem* Teil besteht? Der MIME-Type multipart/related bedeutet, dass die Nachricht mehrere Teile enthält ("multipart"), die miteinander in Beziehung stehen ("related"). Es ist kein Verstoß gegen die Regeln, eine multipart-Nachricht mit nur einem Teil zu generieren, aber er ist sinnlos.
$message = "
--0003255546b6117da7047a492fc7\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
Stop, stop! Wo bleiben die Header für diesen Part? Da fehlt mindestens ein "Content-Type: text/html" plus Angabe der Zeichencodierung.
--0003255546b6117da7047a492fc7\r\n";
Und der letzte Trenner wird am Zeilenende mit zwei zusätzlichen Minuszeichen "--" ergänzt.
Ich wäre für jeden Hinweis dankbar, wie ich Outlook 2007 dazu bringe, die Mail als HTML-Mail zu erkennen.
Das Wichtigste ist der Content-Type-Header, der den Nachrichteninhalt als HTML ausweist.
So long,
Martin
Ja, ja ... E.T. wusste schon, warum er wieder nach Hause wollte.