Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7400[/thread]

Umlaute in Mails falsch dargestellt: Mail::Pop3Client



<< >> 5 Einträge, 1 Seite
thardy
 2005-10-26 11:50
#59338 #59338
User since
2005-10-26
2 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich hole mittels Mail::Pop3Client Mails aus einem POP3-Postfach. Leider werden die Umlaute und diverse andere Sonderzeichen als hexadezimale Zahl mit vorangestelltem Gleichheitszeichen dargestellt. Wenn ich mir die Mail im Postfach mit Outlook ansehe, wird sie richtig dargestellt.
Was kann man da machen (außer die Zeichen mittels RegEx zu filtern), hat wahrscheinlich was mit dem Encoding zu tun, aber wirklich rausbekommen hab ich's noch nicht.

Technische Daten:

Das Skript läuft auf einem Win2k Server, der POP3 Server ist ein Exchange 5.0 auf NT4 Server.

Mein Beispielcode:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$pop = Mail::POP3Client->new($pop3user,$pop3pwd,$pop3host);
$num_mesg = $pop->Count;

for ($i = 1; $i <= $num_mesg; $i++)
{  
   $head=$pop->Head($i);
   print($head);
   $mail_body=$pop->Body($i);
   print($mail_body);
   $pop->Delete($i);

}

$pop->Close();


Aus "Grüne Öfen werden geändert."
wird "Gr=FCne =D6fen werden ge=E4ndert."

Vielen Dank!

Gruß
Thomas
esskar
 2005-10-26 12:07
#59339 #59339
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schau dir mal CPAN:Mail-Box an
pKai
 2005-10-26 13:18
#59340 #59340
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Da SMTP (RFC[2]822, usw) so definiert ist, dass 7-Bit-ASCII bei der Übertragung zur Anwendung kommt, müssen darüber hinaus gehende Zeichen (z. B. Umlaute) geeignet codiert werden.
Dazu dienen Verfahren wie in RFC2045 ff. (MIME) beschrieben.
Im Header der bewussten Mail solltest du sowas wie
Code: (dl )
Content-Transfer-Encoding: Quoted-Printable
finden, was bedeutet, dass deine =FC usw. gemäß dieser Codierung zustande gekommen sind.
Für die Quoted-Printable-Encoding gibt verschiedene Module, z. B. CPAN:MIME::QuotedPrint, was es dir ermöglichen würde den Body zu dekodieren (So wie es auch dein Outlook macht).
I sense a soul in search of answers.
thardy
 2005-10-26 15:21
#59341 #59341
User since
2005-10-26
2 Artikel
BenutzerIn
[default_avatar]
@esskar
Das werd ich bei Gelegenheit tun, danke!

@pKai
Ich glaube das ist genau das, was ich gesucht habe. Auch Dir vielen Dank!
(der Satz in Deiner Signatur klingt mir noch im Ohr, als wär es gestern gewesen...)
ptk
 2005-10-28 02:05
#59342 #59342
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann auch Encode verwenden, da gibt es das Pseudo-Encoding "MIME-Header". Encode hat den Vorteil, dass es standardmaessig seit 5.8.0 in Perl dabei ist und hat den Nachteil, dass es mit aelteren Perls gar nicht laeuft.
<< >> 5 Einträge, 1 Seite



View all threads created 2005-10-26 11:50.