我使用以下代码来读取消息对象的正文:
Object content = _message.getContent();
String body = null;
if (content instanceof String) {
body = (String) content;
} else if (content instanceof Multipart) {
Multipart multipart = (Multipart) content;
BodyPart part = multipart.getBodyPart(0);
body = (String) part.getContent();
}
当内容是多部分时,一切正常,但是当内容只是文本/纯文本时,我得到以下异常(已经在第 1 行的 getContent() 调用中!):
13.01.2011 17:22:23 org.zkoss.zk.ui.impl.UiEngineImpl handleError:1253
SCHWERWIEGEND: >>org.zkoss.zk.ui.UiException: java.io.IOException
java.io.IOException
at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:108)
at com.sun.mail.handlers.text_plain.getContent(text_plain.java:90)
at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:775)
at javax.activation.DataHandler.getContent(DataHandler.java:522)
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1396)
我还尝试了 JavaMail FAQ 中显示的代码:http ://www.oracle.com/technetwork/java/faq-135477.html#mainbody
结果相同。
该消息是通过在 IMAPFolder 实例上调用 getMessages(n) 来检索的。文件夹实例来自 IMAPStore 对象。
我完全不知道可能出了什么问题......有人有什么想法吗?