我正在使用javax从电子邮件中获取附件。 我的代码在这里:
String disposition = part.getDisposition();
if (disposition != null &&
(disposition.equalsIgnoreCase(Part.ATTACHMENT) || disposition.equalsIgnoreCase(Part.INLINE))) {
log.debug("Found attachment: " + part.getFileName());
}
它运作良好。但是,当Outlook Webmail发送电子邮件时,名称中带有拉丁字母的附件,则part.getFileName()例如对于附件“Riunione_del_venerdì.pdf”返回给我“=?iso-8859-1?Q?Riunione_del_venerd = EC_20170303.pdf?=”并且我无法获得正确的名称
如何获取真实的文件名?我该如何解决这个问题?
答案 0 :(得分:0)
过了一段时间,我自己找到了一个解决方案。 从javax.mail.internet我可以使用:
String filename = part.getFileName();
String decodedFilename = MimeUtility.decodeText(filename);
可能只是在文件名以“=?”开头时才这样做并以“?=”
结尾