Mailinglisten-Archive |
Hi, auch wenn das eigentliche Problem gelöst ist ein paar Anmerkungen: On Wednesday 27 April 2005 17:04, Frank Liebelt wrote: > lieschen.müller at würdegernemailsempfangen.de [...] > Dann hoffe ich mal, dass Postfix und phpMailer mit umlauten umgehen können! Wie schon Albert Weinert geschrieben hat sind nur im hostnamen, nicht im local part Umlauter erlaubt. Und da grundsätzlich jedes Zeichen was in Unicode definiert ist. Dieses wird aber wieder von den verschiedenen Registries eingeschränkt, das DENIC erlaubt für .de z.B. nur Zeichen die es auch im Latin-1 (iso-8859-1 gibt, etwas genauer, die lateinischen Buchstaben mit den verschiedenen Akzentarten sowie solche Dinger wie ß und æ) Da die verantwortlichen nicht wollten dass jeder Server und alles dafür gepatcht werden muss wurde festgelegt, dass der MUA, also das Programm dass die E-Mail schickt bzw. Empfängt (MUA = Mail User Agent, in der Regel der Mail-Client) für die Konvertierung in die Punycode-Form verantwortlich ist und den Servern die zum schicken verwendet werden, sowie dem dNS dasvon nichts wissen. Die Punycode-Darstellung ist eine Ersetzung der Sonderzeichen durch Zeichen aus dem Bereich [a-z], aus www.schlüter.de wird dann z.B. www.xn--schlter-q2a.de. xn-- ist dabei die Kennzeichnung, dass es Punycode ist, der Umlaut ist rausgeflogen und q2a ist eine Kodierung der Position und des Unicodezeichens ü. Eine Sonderolle spielen die Zeichen wie ß und æ die werden anhand der sogenannten stringprep Tabelle in ss bzw. ae umgeschrieben. Da wird kein xn-- oder so vorgesehen. mit einem IDN-Fähigen Client sollte man also auch die Website der Stadt Essen über www.eßen.de erreichen :-) Nach dem Ausflug über die Interna wieder zurück zu PHP: Wie gesagt ist der MUA verantwortlich. Wer per PHP eine Mail sendet ist MUA und muss sich um die Konvertierung kümmern. Da gibt es 1,5 Ansätze. Der funktionierende Ansatz ist die PEAR Net_IDNA Klasse die zum Übersetzen verwendet werdne kann. Der halbe Weg ist meine idn Extension in PECL - die tut das was ich wollte als ich die schnell zusammengehackt habe aber nicht viel mehr. Sie basiert auf der GNU libidn die z.B. es auch ermöglichen würde anhand gewisser Tabellen zu checken ob nur erlaubte Zeichen im Hostname sind - aber die müsste, wenn ich mal die Zeit und Lust habe, rewritten werden. johannes P.S. Der RFC-konforme Check für E-Mail-Adressen ist der: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html ;-)
php::bar PHP Wiki - Listenarchive