Mailinglisten-Archive |
Hallo nochmal, Andreas Stagl schrieb: > habe ein Problem beim Kodieren der Umlaute im "freidefinierbaren Teil" > (weiss nicht genau, wie ich's besser umschreiben soll) einer > Email-Adresse. Bzgl der Kodierung von Umlauten in der eigentlichen > Email-Adresse zerbrech ich mir dann später den Kopf. > > Generell kodiere ich Email-Header mittels md_encode_mimeheader()... > [...] > Das gewünschte Resultat wäre jedoch in etwa wie folgt: > > To: =?ISO-8859-15?Q?h=E4schen?= <haeschen at hasenbau.com>, > =?ISO-8859-15?Q?h=FCndchen?= <huendchen at hundehuette.com>, > mauserich <mauserich at einlochinderwand.com>, =?ISO-8859-15?Q?k=E4tz?= > =?ISO-8859-15?Q?chen?= <kaetzchen at katzenkrob.com>, > =?ISO-8859-15?Q?v=F6gelchen?= <voegelchen at nest.com> ... konnte das Problem inzwischen lösen, bin dabei allerdings auf ein unschönes Verhalten von mb_encode_mimeheader() gestossen.... und zwar kodiert mb_encode_mimeheader() erst ab dem ersten Wort, welches ein nicht-ASCII Zeichen enthällt, dann aber bis zum Ende des Strings. So macht die Funktion beispielsweise aus "mein kleiner grüner Kaktus" den String "mein kleiner =?ISO-8859-15?Q?gr=FCner=20kaktus?=". Mein Thunderbird kommt mit derart "halb-kodierten" Strings in From, To, etc Headern auch klar; für GMX, Squirrelmail & Co müsste man allerdings (sofern eine Kodierung nötig ist) den gesamten String (also bereits bei "mein" beginnend) kodieren. Dazu lässt sich mb_encode_mimeheader() allerdings nicht überreden. Habs auch schon mit iconv_mime_encode() versucht. Dort wird zwar bereits (so wie's für GMX & Co nötig wäre) bereits ab dem ersten Wort kodiert, allerdings muss man dort für jeden Aufruf von iconv_mime_encode() als ersten Parameter den Header-Namen angeben, der dann im Erbebnis mit-verarbeitet wird und ich somit beim Verarbeiten von 5 To-Email-Adressen in einer Schleife auch 5mal "To: " drinn stehen hätt, welches ich zwar über substr() oder eine ähnliche Funktion entfernen könnte, was mit dann aber 3 Zeichen abschneided und somit der Zeilenumbruch nicht mehr exact ist. Kurzum.... wie ich in der Zwischenzeit gesehen hab, unterstützt ohnehin keiner der mir zugänglichen Webserver mbstring oder iconv, weshalb ich mich nun dazu durchgerungen hab die Kodierung direkt in PHP ohne externe Libaries zu machen. Deshalb meine Frage... kennt jemand von euch eine Klasse, die genau diese Kodierung macht, bzw wisst Ihr Resourcen, wo ich nachlesen kann, wie was zu kodieren ist? Im Moment genügt mir Q-Encoding. Danke schon mal im Voraus! Gruß aus Wien, Andy
php::bar PHP Wiki - Listenarchive