我正在使用javax从电子邮件中获取附件。我的代码在这里:
String disposition = part.getDisposition();
if (disposition != null &&
(disposition.equalsIgnoreCase(Part.ATTACHMENT) || disposition.equalsIgnoreCase(Part.INLINE))) {
log.debug("Found attachment: " + part.getFileName());
}
而且效果很好。但是,当邮件是由Outlook webmail发送的,附件中有拉丁字母的名称,部分. getFileName()例如.为附件"Riunione_del_venerdì. pdf"返回给我"=?iso-8859 - 1?Q?Riunione_del_venerd = EC_20170303.pdf?="我无法得到正确的名称
我怎么才能得到真正的文件名?我该怎么解决这个问题呢?
2条答案
按热度按时间t5fffqht1#
过了一段时间,我自己找到了解决办法。从javax.mail.internet我可以用途:
也许只是这样做只有当文件名以“=?“并以“结尾=”
kknvjkwl2#
完美的解决方案,不需要检查=?和?=难以置信,javax.mail中没有修复这个问题