在Java项目,我可以收到来自Gmail服务器的邮件。 但我想接收体的包装部件。 并且在该代码示例我的最后message(messages.length - 1)
是多部分/混合。
调试是通的if
块,但它落入catch块,并给了我这个消息:
异常在线程“主要” java.lang.ClassCastException:com.sun.mail.imap.IMAPInputStream不能转换为javax.mail.Multipart
我该如何处理这个问题?
Message[] messages = folder.getMessages();
ArrayList<String> attachments = new ArrayList<String>();
for (int i = messages.length - 1; i >= 0; i--) {
Part p = messages[i];
if (messages[i].isMimeType("multipart/*"))
{
***Multipart multipart = (Multipart) messages[i].getContent();***
for (int j = 0, m = multipart.getCount(); j < m; j++) {
Part part = multipart.getBodyPart(j);
String disposition = part.getDisposition();
//
if (disposition != null
&& (disposition.equals("ATTACHMENT")))
{
System.out.println(part.getFileName());
attachments.add(saveFile(MimeUtility.decodeText(part.getFileName()), part.getInputStream()));
}
}
}
}
编辑
我固定使用的mail.jar,additional.jar和activation.jar其正在使用的仅Java项目的问题。
(我之前下载这些罐子我的Android项目。这是问题的根源。)