我有一个应该处理一些邮件的插件,所以我需要从 imap 邮件中获取附件并做一些事情。
一切似乎都有效,但我有一封邮件有一个奇怪的附件标题,我无法正确获取它,这里是附件标题:
--_01d0aeb2-3f01-4153-9121-66b7af6924f1_
Content-Type: application/msword
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=
"=?iso-8859-1?Q?Atto_Aziendale_(xxx=E0_del_xxx_xxx_-_xxx)=2C_Pr?=
=?iso-8859-1?Q?of.xxx_xxx_-_Dr.xxx_xxx.doc?="
“x”是为了隐私,但这并不重要,问题是当我尝试使用 javaMail 获取此附件的文件名时:
Attachment att = new Attachment(mailPart);
String filename = att.getFilename();
我只得到这个:“Atto Aziendale (xxx del xxx xxx - xxx), Pr”
似乎它没有读取第二行。
我还尝试以另一种方式获取文件名:
mailPart.getHeader("Content-Disposition").getAttribute("filename").toString();
然后返回: filename="=?iso-8859-1?Q?Atto_Aziendale_(xxx=E0_del_xxx_xxx_-_xxx)=2C_Pr?==?iso-8859-1?Q?of.xxx_xxx_-_Dr.xxx_xxx.doc?= "
所以似乎该属性已正确读取,但如果我尝试获取:
mailPart.getHeader("Content-Disposition").getAttribute("filename").getValue();
然后我再次得到一个截断的文件名:“Atto Aziendale (xxx del xxx xxx - xxx), Pr”
任何人都知道如何获得完整的文件名或我应该如何解码文件名属性?
谢谢你的帮助