• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Sprichwörter und Redewendungen sind das Thema unseres Monatswettbewerbes. Nähere Informationen dazu gibt es natürlich auch, und zwar auf dieser Seite ---> Klick

Von Umlauten, utf-8 und mail();

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.970
Moin moin

ich habe verwalte eine Seite in der ich Pressemitteilungen (PMs) per PHP mail(); verschicke. Diese PMs werden ebenfalls in einer Datenbank abgelegt und auf der Seite angezeigt.

Die Seite mit dem Formular zum PM eintragen hat die Codierung utf-8 im Header. Auch die Ausgabeseite hat den selben Header. Auf der Seite werden die PMs auch richtig ausgegeben, aber die ankommenden Mails haben ein Problem mit den Sonderzeichen. So wird ä zu ä, ü zu ü und so.

Weiß jemand wie ich dieses Problem lösen kann? Es sieht wirklich unprofessionell aus, so wie es zur Zeit läuft.

Gruß Holger
 

fraggle

Boskoop
Registriert
11.01.05
Beiträge
39
Versuch doch mal im Header der Mail folgendes zu setzen:
Code:
"Content-Type: text/plain; charset=utf-8\n"
 
  • Like
Reaktionen: .holger

el_migu_el

Gala
Registriert
07.03.07
Beiträge
53
Verschickst Du das mail als HTML-Mail oder Plain-Text? Welcher E-Mail Client auf welcher Plattform?
 

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.970
Plain Text, Email Clients sind neben Mac OS diverse Windows Clients und Onlineinterfaces. Das ganze als HTML Mail zu verschicken und dann in nem Header zu konfigurieren ist vielleicht ne Lösung, das werd ich die Tage mal testen.
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Wenn nur die beiden HTML-Ausgaben UTF-8 vorschreiben, muss das (je nach Browser) nicht unbedingt ausreichen. Ist beispielsweise der Server so konfiguriert, dass er ISO-8859-1 ausgibt, würde das Deine Probleme erklären, denn dann reicht der Meta-Tag für die Zeichenkodierung beispielsweise bei Safari nicht mehr aus.

Du kannst dies prüfen, indem Du die Seite, die das Eingabeformular enthält, einfach mal bei Validome überprüfen lässt. In diesem Fall sind die Fehler und Warnungen bezüglich möglicher HTML- oder XHTML-Fehler nicht relevant aber die Info zur Kodierung der Seite, die ganz zu Beginn ausgegeben wird.

Eventuell wird es dann nötig, den Text der Presse-Meldung mit utf8_encode einer Vorwäsche zu unterziehen.

Hilfreich dürfte auch sein, eine MIME-Message zu schicken, die vom Typ »content/multipart« ist. Dabei kann man ganz wunderbar mit der PEAR-Lib Mail_Mime arbeiten.
 
  • Like
Reaktionen: .holger

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Plain Text, Email Clients sind neben Mac OS diverse Windows Clients und Onlineinterfaces.
Du solltest Dir die RFCs zum Thema E-Mails durchlesen.
Wenn ich das noch aus dem Gedächtnis zusammen bekomme:
  1. Der Header muß 7-Bit clean sein. Ausnahme von der Regel gibt es keine!
  2. Im Header müssen nicht 7-Bit Inhalte anders kodiert werden wie im Rest der Mail.
  3. Es empfiehlt sich gleich saubere MIME-Mails zu verschicken, wenn man nicht mit US-ASCII (7-Bit Umfang) auskommt. Dazu müssen MIME-Parts in die Mail geschrieben werden.
  4. Unbedingt die RFCs durchlesen
Wenn man irgend welche Felder im Header mit nicht US-ASCII Zeichen hat, dann werden diese in =?zeichensatz?encoding?non_us_ascii_word?=
Texten kodiert.
Beispiel: =?iso-8859-1?q?this=20is=20some=20text?=
Wichtig ist dabei, daß man nur einzelne Worte encoden soll! Alles was durch ein CFWS getrennt ist soll (muß) man getrennt encoden. Das ganze kannst Du in der RFC 2822 nachlesen bzw. den RFCs auf die sich RFC2822 bezieht. Hier sind die RFCs schön untereinander verlinkt.
 
Zuletzt bearbeitet:

Nogger

Damasonrenette
Registriert
05.11.05
Beiträge
494
Ich benutze nicht mail() direkt, sondern die Klasse PHPMailer. Dort den Charset auf UTF-8 setzen und fertig.