outlook使用javax getFileName使用奇怪文件名的附件

outlook使用javax getFileName使用奇怪文件名的附件,java,outlook,multipart,outlook-web-app,javax,Java,Outlook,Multipart,Outlook Web App,Javax,我正在使用javax从电子邮件中获取附件。 我的代码在这里: String disposition = part.getDisposition(); if (disposition != null && (disposition.equalsIgnoreCase(Part.ATTACHMENT) || disposition.equalsIgnoreCase(Part.INLINE))) { log.debug("Found attachment: " + par

我正在使用javax从电子邮件中获取附件。 我的代码在这里:

String disposition = part.getDisposition();
if (disposition != null &&
    (disposition.equalsIgnoreCase(Part.ATTACHMENT) || disposition.equalsIgnoreCase(Part.INLINE))) {
    log.debug("Found attachment: " + part.getFileName());
}
而且效果很好。但是,当Outlook webmail发送带有名称中带有拉丁字母的附件的电子邮件时,附件“Riunione_del_venredì.pdf”的.getFileName()部分返回给我“=?iso-8859-1?Q?Riunione_del_venred=EC_20170303.pdf?”,我无法获得正确的名称


如何获取真实的文件名?我怎样才能解决这个问题呢?

过了一段时间,我自己找到了解决办法。 从javax.mail.internet,我可以使用:

String filename = part.getFileName();
String decodedFilename = MimeUtility.decodeText(filename);
可能仅当文件名以“=?”开头,以“=”结尾时才执行此操作