Я использую следующий код для чтения тела объекта сообщения:
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();
}
Когда контент состоит из нескольких частей, все работает нормально, но когда контент просто текстовый / обычный, я получаю следующее исключение (при вызове getContent () в строке 1 уже!):
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)
Я также попробовал код, показанный в FAQ по JavaMail: http://www.oracle.com/technetwork/java/faq-135477.html#mainbody
Тот же результат.
Сообщение было получено с помощью вызова getMessages (n) для экземпляра IMAPFolder. Экземпляр папки происходит из объекта IMAPStore.
У меня совершенно нет идей, что может пойти не так ...
У кого-нибудь есть идеи?