MimeMessage未解析outlook EML文件中的附件

MimeMessage未解析outlook EML文件中的附件,outlook,jakarta-mail,eml,Outlook,Jakarta Mail,Eml,我正在使用javax.mail.internet.mimessage解析/提取eml文件中的数据 文件名始终打印为空。我如何知道附件文件名和扩展名?至少在不知道扩展名的情况下,我甚至无法正确保存文件 基本上,我正在寻找一个通用的Java库API,它解析eml文件并递归地提供消息文本和附件?附件不需要有文件名 如果您的EML文件是MIME格式,并且包含一个文件名,但JavaMail找不到它,请发布一个示例。但在我的例子中,单个EML文件包含多个附件。除非我知道文件扩展名,否则如何以正确的格式保存内

我正在使用javax.mail.internet.mimessage解析/提取eml文件中的数据

文件名始终打印为空。我如何知道附件文件名和扩展名?至少在不知道扩展名的情况下,我甚至无法正确保存文件

基本上,我正在寻找一个通用的Java库API,它解析eml文件并递归地提供消息文本和附件?

附件不需要有文件名


如果您的EML文件是MIME格式,并且包含一个文件名,但JavaMail找不到它,请发布一个示例。

但在我的例子中,单个EML文件包含多个附件。除非我知道文件扩展名,否则如何以正确的格式保存内容?如何确定我的EML文件是否为MIME格式?我看到在每个二进制内容之前,有一个内容类型:application/pdf;name=xyz.pdf,内容配置:附件;filename=存在。看起来是MIME格式。您使用的是什么版本的JavaMail?如果在EML文件上运行,会得到什么输出?最后我会得到%%EOF CONTENT-TYPE:application/vnd.ms-excel;名称=。。。文件名:…xls这只是一个输入流,在IDE的输出控制台上有一些二进制数据。看起来JavaMail正在查找文件名。查看msgshow.java源代码,找出它与您的程序的不同之处。
 MultiPart multiPart = 
 (MultiPart)MimeMessage.getContent();
  ...//check if attachments are present, then extract it
 MimeBodyPart part = (MimeBodyPart)multiPart.getBodyPart(attachmentIndex);
 String fileName = part.getFileName();