Wenn eine Anwendung UTF8-Accounts UND auf eine Sprache festgelegte Accounts besitzt, kann die Mailversendung nicht immer per UTF8 erfolgen.
Bei Web-Mailern, wie GMX, besteht z.B. dann das Problem, dass das umgebende HTML-Template einen Zeichensatz festlegt. Meisstens ist das “iso-8859-1″. Der Browser stellt somit auf Deutsch um und z.B. eine UTF-8-Mail wird als Datenmüll angezeigt. Die Mail kann zwar auch gelesen werden, Zeichensatz einfach auf UTF-8 per Hand im Browser umstellen, aber das kann man keinem User zumuten.
Lösung: die Mails werden fest dem Account-Zeichensatz zugeordnet. D.h. ein iso-8859-1 Account versendet immer iso-8859-1 Mails. Ein UTF-8 Account muss allerdings pro Mail auswählen können, welcher Zeichensatz verwendet wird. So kann dort gewährleistet werden, dass jede Sprache in ihrem Zeichensatz als Mail versendet wird. So kommt es auf Userseite zu den wenigsten (hoffentlich keinen) Problemen.
Wenn man in UTF8 z.B. eine russische Mail versendet, so wird der Subjekt immer zerstört. So kommt z.B. vom Betreff п�?ак�?ика Ñо�?�?�?дни�?еÑ�?ва immer nur пакика одниева an. Es werden also Zeichen verschluckt.
Opera-Mail codiert die Zeichen in einem anderen Format. Wie, weiss ich noch nicht. Mein UTF8 Header sieht derzeit so aus:
Subject: ÿ�?ðú�?øúð �?þ�?�?�?ôýø�?õ�?�?òð
Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline
Content-Transfer-Encoding: binary
Der von Opera folgendermassen:
Subject: =?utf-8?B?0L/RgNCw0LrRgtC40LrQsCDRgdC+0YLRgNGD0LTQvdC40YfQtdGB0YLQsg==?= =?utf-8?B?0LA=?=
Content-Type: text/plain; format=flowed; delsp=yes; charset=utf-8
Content-Transfer-Encoding: 8bit
Die UTF8 Mailinhalte kommen auch als UTF8 Zeichen an. Nur der Betreff ist gequotet. Bei KOI8-Mails ist das anders. Der Betreff und die Inhalte werden gequotet…
Subject: =?koi8-r?B?V0c6INDSwcvUycvBINPP1NLVxM7J3sXT1NfB?=
Content-Type: text/plain;
charset="koi8-r"
Test: =D0=D2=C1=CB=D4=C9=CB=C1 =
=D3=CF=D4=D2=D5=C4=CE=C9=DE=C5=D3=D4=D7=C1
Der Quote-Typ heisst wohl RFC 1522 und ist ein Standard.
Zitat:
If you wish to send a message with certain mail headers such as Subject:, To: or From: containing non-US-ASCII characters, you should use the method Mail.EncodeHeader to encode your character string according to the RFC 1522. The method takes one required parameter, the header string, and one optional parameter, the character set, which is “ISO-8859-1″ by default.
Die gequoteten ROI-8 Zeichen rühren wohl vom “Quoted-Printable” Format her.
Nachtrag: Es gib für Perl ein CPAN-Modul, womit man die Konvertierung unkompliziert durchführen kann.