PHP mail() Umlauteproblem

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
838
Hallo,

und zwar habe ich folgenden Code:

PHP:
$body = "<html><head></head><body>" . $body . "</body></html>" . $attachment;
			
$Header = "MIME-Version: 1.0\r\n";
$Header .= "Content-type: text/html; charset=utf-8\r\n";
$Header .= "From: " . $from . " <" . $fromEmail . ">\r\n";
			
$Empf		= $empfaengerEmail;
$Betreff	= $subject;
$text		= $body;
$mailsent	= mail($Empf, $Betreff, $text, $Header);

Wenn ich die Variablen entsprechend fülle, erhalte ich im $from und $subject jedesmal bei GMX und Google statt einem ö, irgendwelche komische Zeichen. Wenn ich es mir zu Outlook schicke, erscheint alles ganz normal.

Habe aus utf-8 auch schon iso-8859-1 gemacht. Gegoogelt habe ich auch schon viel. Jedoch find ich nirgends anders eine Lösung, als ich sie schon habe.

Wo ist mein bzw. der Fehler? Bitte Hilfe.
 
Schätze mal dass du Umlaute umwandeln musst, da sie übergebenen Daten als HTML interpretiert werden. Also ein ö z.B. in &ouml;
Müsste eine Klasse dafür geben, weiß nur grad nicht wie die heißt.
 
Ja, das habe ich auch gemacht.

PHP:
html_entity_decode($from)
Im $from dann eben z.B. &ouml;

Selbst das half nicht. Das heißt, es ging dann bei Google und GMX, aber nicht Outlook.
 
Wie ist denn die Kodierung deiner Webseite, welche das Formular enthält (Rechtsklick -> Seiteninformationen)?
 
Htmlentities() willst du, und das natürlich nur auf $body angewendet, das ist ja das was das Html enthält.

Wenn das nicht klappt wäre der Inhalt von $body noch interessant.

edit: eigentlich nichtmal auf $body, der kann ja auch Tags enthalten. Nur auf den Inhalt der Tags in body, das htmlentities müsste also früher ansetzen, wenn du den Inhalt vom Body erstellst.
 
Zuletzt bearbeitet von einem Moderator:
Nein. $body funktioniert, wie es soll.
In meinem Eingangsbeitrag habe ich von "$from und $subject" geschrieben.
 
Schumiel schrieb:
Nein. $body funktioniert, wie es soll.
In meinem Eingangsbeitrag habe ich von "$from und $subject" geschrieben.

In welchem Encoding ist denn das PHP Skript gespeichert? Das sollte UTF-8 ohne BOM sein.

utf8_encode auf subject und from hast du versucht? Mal MIME/Content Type hinters From zu setzen?

Ansonsten ist das Netz voll von dem Fehler und möglichen Lösungen, solche encoding Geschichten sind aber immer PITA zu debuggen ohne die Originalquellen.

Hier noch ein Link, der auch passen könnte:
http://www.askingbox.de/info/php-mail-funktion-utf-8-header-in-e-mails
 
Habe ich alles gemacht.

Da nichts funktioniert, nutze ich nun htmlMIME5 ... damit keine Probleme mehr.
 
Magst du das hier mal exemplarisch posten, dann finden andere die den Thread später finden gleich eine Antwort ;)
 
Zurück
Oben