=?ISO-8859-1?B?whatthef*ck?=
Emails treiben einen noch in den Wahnsinn! Genauer gesagt das zugehörige Protokoll. Abgesehen davon dass unsere Mail-Schnittstelle (bzw die dazugehoerige mail.jar von sun), obwohl seit fast zwei Jahren im Einsatz, noch immer von eigenartigsten Email-Formaten geärgert wird, hab ich nun im Laufe der letzten Woche versucht zu entschlüsseln, was es mit diesen =?ISO..?= in attachten Dateinamen auf sich hat. Bzw wie man denn diese eben ausliest entschlüsselt.
commons-codec.jar liefert einem die passende Lösung, bzw genauer gesagt die Klassen BCodec und QCodec. Da man ja aber nicht im Vorhinein weiss, ob ein Filename wie codiert ist, muss man noch etwas mit regular expressions herum tricksen:
commons-codec.jar liefert einem die passende Lösung, bzw genauer gesagt die Klassen BCodec und QCodec. Da man ja aber nicht im Vorhinein weiss, ob ein Filename wie codiert ist, muss man noch etwas mit regular expressions herum tricksen:
...
var str = part.getFileName(); // fetch the filename of the MessagePart
var codec = Packages.org.apache.commons.codec;
var reg = /(=\?[A-Z\-0-9]+\?B\?[^?]+\?=)/gi;
var match = str.match(reg);
for (var i in match) {
str = str.replace(match[i], (new codec.net.BCodec()).decode(match[i]));
}
var reg = /(=\?[A-Z\-0-9]+\?Q\?[^?]+\?=)/gi;
var match = str.match(reg);
for (var i in match) {
str = str.replace(match[i], (new codec.net.QCodec()).decode(match[i]));
}
...
michi - 16.Sep 2005 11:56 - technisches