вложения Outlook со странным именем файла с использованием javax getFileName

Я использую javax для получения вложений из электронных писем. Мой код здесь:

String disposition = part.getDisposition();
if (disposition != null &&
    (disposition.equalsIgnoreCase(Part.ATTACHMENT) || disposition.equalsIgnoreCase(Part.INLINE))) {
    log.debug("Found attachment: " + part.getFileName());
}

и это работает хорошо. Но когда электронные письма отправляются веб-почтой Outlook с вложением с латинскими буквами в имени, функция part.getFileName(), например. для вложения "Riunione_del_venerdì.pdf" мне возвращается "=?iso-8859-1?Q?Riunione_del_venerd=EC_20170303.pdf?=" и я не могу получить правильное имя

Как я могу получить настоящее имя файла? Как я могу решить это?


person Manticore    schedule 05.04.2017    source источник


Ответы (1)


Через некоторое время я нашел решение самостоятельно. Из javax.mail.internet я могу использовать:

String filename = part.getFileName();
String decodedFilename = MimeUtility.decodeText(filename);

может быть, просто делать это, только если имя файла начинается с "=?" и заканчивается "?="

person Manticore    schedule 05.04.2017