Umlaute in E-Mails, die via Exchange auf dem iPhone empfangen werden

Apple und die Umlaute, damit kann man stundenlang, wenn nicht gar tagelang kämpfen. Einige Probleme kann man in den Griff kriegen, wenn man Mails (zum Beispiel als Newsletter) von einem eigenen Server verschickt.

Ein anderes Problem stellen Umlaute in Namen dar, die Bestandteil einer E-Mail Adresse sind. Hier werden die Umlaute dann so zerschossen dargestellt, dass man nicht mehr ohne weiteres auf solche Mails antworten kann. Für dieses Problem kann ich leider (noch) keine Lösung präsentieren.

Doch nun zu dem, was ich gelöst habe: Es soll von einem Linux-Server eine E-Mail verschickt werden, die sowohl im Betreff wie auch im Mail-Body Umlaute enthält. Empfangen werden soll diese Mail von einem Microsoft Exchange Server 2003, von dem ein iOS Gerät wie das iPhone oder das iPad Mails liest.

Hier kommt es darauf an, dass die Umlaute richtig kodiert werden. Richtig ist hier in dem Sinne zu verstehen, dass man das Verfahren benutzt, das auch von Apple richtig unterstützt wird.

Wie sich herausgestellt hat ist dies quoted-printable. Für das Betreff der Mail muss der Text seinerseits noch kodiert werden. Im folgenden stelle ich ein Perl-Programm vor, das die beiden Perl-Module MIME::Words und MIME::Lite nutzt, um die Inhalte entsprechend zu kodieren:

#!/usr/bin/perl
use MIME::Lite;
use MIME::Words qw(:all);

$subject = "Testmail äöüÄÖÜß";
$usermail = " äöüÄÖÜß";

$msg = MIME::Lite->new
(
 From = 'from@sender.domain',
 To = 'to@empfaenger.domain',
 Encoding = 'quoted-printable',
 Subject = encode_mimewords($subject),
 Type = 'text/plain; charset=latin1',
 Data = "$usermail",
);

$msg->send();

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *