UTF-8 Mail mit PHP versenden
Electronix
- php
1 ChrisB0 Tom0 Der Martin0 Tom
Hallo,
ich versuche gerade, eine Mail im UTF-8-Charset mit PHP zu versenden. Der Text der Mail wird auch korrekt kodiert, sprich, alle "ä" etc werden korrekt dargestellt. Nur im Betreff funktioniert das nicht, ein ä wird immer als ä angezeigt. Muss ich für die Betreffzeile noch etwas besonderes tun, damit die auch korrekt formatiert wird?
$header = "From:" . $sender . "\nContent-Type:text/html; charset=utf-8\nContent-Transfer-Encoding: 8bit\n";
mail($mailadresse, "Das ä wird falsch dargestellt", "Hier steht bei mir noch mehr Text, als HTML", $header);
Hat irgendwer vielleicht eine Idee, wie ich das beheben kann?
Mit freundlichen Grüßen,
Electronix
Hi,
Hat irgendwer vielleicht eine Idee, wie ich das beheben kann?
Du könntest erst mal in den Nutzerkommentaren zu mail im Handbuch nachlesen.
MfG ChrisB
Hello,
ich versuche gerade, eine Mail im UTF-8-Charset mit PHP zu versenden. Der Text der Mail wird auch korrekt kodiert, sprich, alle "ä" etc werden korrekt dargestellt. Nur im Betreff funktioniert das nicht, ein ä wird immer als ä angezeigt. Muss ich für die Betreffzeile noch etwas besonderes tun, damit die auch korrekt formatiert wird?
Header dürfen prinzipiell nur in Singlebyte ASCII versandt werden, also alle Codepoints nur bis 0xFF = 127d.
Wenn Du andere Codepoints oder Multibyte übertragen möchtest, musst Du das Encoding und das Content-Transfer-Encoding angeben.
Das einfachste wäre, Du würdest Dir mal eine Mustermail mit einem gängigen Client erzeugen und nachschauen (Mit Hex-Editor), was der da so gemacht hat.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Ich habe jetzt einfach das Betreff vorher umgewandelt.
$betreff = "=?UTF-8?Q?" . imap_8bit($betreff) . "?=";
Hi,
ich versuche gerade, eine Mail im UTF-8-Charset mit PHP zu versenden. Der Text der Mail wird auch korrekt kodiert, sprich, alle "ä" etc werden korrekt dargestellt. Nur im Betreff funktioniert das nicht, ein ä wird immer als ä angezeigt. Muss ich für die Betreffzeile noch etwas besonderes tun, damit die auch korrekt formatiert wird?
ja, Headerzeilen, die Zeichen außerhalb des ASCII-Bereichs enthalten, müssen gesondert codiert werden, siehe RFC 2047. Mir war, als gäbe es zwischen den IMAP-Funktionen von PHP etwas, das diese Codierung erzeugt, finde aber nur den umgekehrten Weg.
Ciao,
Martin
Hello,
ja, Headerzeilen, die Zeichen außerhalb des ASCII-Bereichs enthalten, müssen gesondert codiert werden, siehe RFC 2047. Mir war, als gäbe es zwischen den IMAP-Funktionen von PHP etwas, das diese Codierung erzeugt, finde aber nur den umgekehrten Weg.
Meintest Du vielleicht
http://de.php.net/manual/en/function.mb-encode-mimeheader.php?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom,
siehe RFC 2047. Mir war, als gäbe es zwischen den IMAP-Funktionen von PHP etwas, das diese Codierung erzeugt, finde aber nur den umgekehrten Weg.
Meintest Du vielleicht
http://de.php.net/manual/en/function.mb-encode-mimeheader.php?
von der Beschreibung her ist es wohl das, was ich meinte - aber ich hatte irgendwie im Gedächtnis, dass eine solche Funktion direkt bei den Mail-bezogenen Funktionen zu finden sei. Vielleicht habe ich da was verwechselt ...
Ciao,
Martin