mail() HTML wird als text ausgegeben

Hammurabi

Mitglied
Hallo,

also ich habe ein Script das E-Mails bei bestimmten Aktionen auf meiner Homepage an mich sendet und seitdem ich den Serveranbieter gewechselt habe bekomme ich beim abrufen über Outlook den reinen HTML text angezeigt allerdings z.B. über „GMX“ oder „Web.de“ ist alles IO.

komischerweise wird im Outlook auch die letzte Zeile des Headers im text ausgegeben "Content-Type: text/html; charset=ISO-8859-1" wäre nett wenn jemand mir hilft das Problem zu beseitigen damit ich wieder ne ordentliche Seite sehe.

PHP:
$mailFromName = ich@ich.de;
$mailFromAdress = ich@ich.de;
$mailHeader .= "From: ich@ich.de\n";
$mailHeader .= "Reply-To: ich@ich.de\n";
$mailHeader .= "Return-Path: ich@ich.de\r\n";
$mailHeader .= "MIME-Version: 1.0\r\n";
$mailHeader .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
# <-- Inhalt
$mailBodyHead= '<html>';
$mailBodyHead.= '<body>';
$mailBodyHead.= '<font color="#FF6600" face="Tahoma" size="2">';
$mailBodyHead.= '<font color="#F76927">TEST</font>';
$mailBodyHead.= '<font color="#939497">TEST</font>';
$mailBodyHead.= '<font color="#F76927">TEST </font>';
$mailBodyHead.= '<font color="#939497">TEST</font><br>';
$mailBodyHead.= '</font>';
$mailBodyHead.= '<br><br>';
$mailBodyHead.= '<font face="Tahoma" size="2">';
			
$mailBody = $mailBodyHead . $mailBody;
		
$mailBody.= '</font>';
$mailBody.= '<br><br>';
$mailBody.= '<font color="#939497" face="Tahoma" size="1">';				
$mailBody.= 'Bitte beachten Sie, dass es sich bei dieser E-Mail um eine vom System versendete Information handelt. ';
$mailBody.= 'Eine Antwort auf diese E-Mail mittels der Antwort-Funktion Ihres Mailprogramms ist nicht möglich. ';
$mailBody.= 'Für Fragen, Anregungen und Probleme wenden Sie sich bitte ';
$mailBody.= 'an folgende Mail- Adresse: <a href="mailto:'ich @ich.de'">ich@ich.de</a>';
$mailBody.= '</font></body>';
$mailBody.= '</html>';
# <-- Email versenden
mail ($mailTo, $mailSubject, $mailBody, $mailHeader);

So in etwa sieht das aus.
 
$mailHeader .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

Nach dem Content Type muss meines wissens nach ein Doppelter Zeilenumbruch folgen. Auserdem würde ich den HTML Teil einfach auch im Header mitsenden. Wenn man schon damit anfängt kann man es auch komplett so machen. Und im eigenlichen Text eben eine Text-Version davon.
 
Hi,

versuch mal:

PHP:
$mailHeader .= "From: ich@ich.de\n";
$mailHeader .= "Reply-To: ich@ich.de\n";
$mailHeader .= "Return-Path: ich@ich.de\r\n";
$mailHeader .= "MIME-Version: 1.0\r\n";
$mailHeader .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$mailHeader .= "X-Mailer: PHP/' . phpversion()";

Also es liegt definitiv am Header, kann sein, dass die X-Mailer Angabe was damit zu tun hat. Falls nicht, einfach mal nach "HTML mail header" googlen.

Gruß tyg3r
 
@Tyg3r:
Also "$mailHeader .= "X-Mailer: PHP/' . phpversion()";" bewirkt bei mir nichts außer das es jetzt einfach auch im Textteil der E-Mail mit angeziegt wird.

@Michael Engel:
Also wenn du mit doppelten Zeilenumbruch meinst "$mailHeader .= "$mailHeader .= "Content-Type: text/html; charset=ISO-8859-1\n\r\n\r" denn hat das keine wirkung.
Wie meinst du das mit dem HTML in den Head?

Und warum wird eigentlich die eine zeile aus dem Head im Text angezeigt und das nur bei Outlook?
 
Also habe jetzt eben mal die einträge vertauscht
PHP:
$mailHeader .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$mailHeader .= "MIME-Version: 1.0\r\n";
und siehe da die HTML wird wieder korekt angezeigt allerdings steht nun das (MIME-Version: 1.0) im Text wenn ich das einfach weglasse habe ich dann etwas zu befürchten? Kenne mich da nicht so aus was genau das macht.
 
Am besten du schaust dir den Quellcode der E-Mail die ankommt mal genau an, es stehen mit sicherheit 2 header für den Inhalt darin. STRG + U (in Outlook und Thunderbird) Eventuell kannst du den Header hier auch Posten. Aber wie gesagt am einfachsten funktioniert es sicher wenn du die Mail komplett selbst baust. Dann kannst dir sicher sein wie sie hinterher aussieht.

Codebeispiele wie das aussieht gibts auf php.net genug:
http://de.php.net/manual/de/ref.mail.php#77405 zB


PS: Post 500 *yeah* ^^
 
Ich gratuliere dir zu deinem 500. Post und danke dir auch für deine Hilfe allerdings lasse ich jetzt einfach die Zeile weg bis es beschwerden gibt ... und die Seite du du gepostet hast kannte ich schon.
 
Zurück