При получении почтового сообщения с Mail.ru message.getContent() или message.isMimeType("text/plain") вызывает возникновение NPE, хотя тема и отправитель читаются корректно. С Яндекса все хорошо, с gmail тоже.
Сообщение отправляется с браузера (с Gmail), а не программно.
Сталкивался ли кто-то с таким? Код стандартный:
private Session session(String protocol, String host, Integer port) {
final Properties properties = new Properties();
properties.put("mail.store.protocol", protocol);
properties.put(String.format("mail.%s.host", protocol), host);
properties.put(String.format("mail.%s.port", protocol), String.valueOf(port));
properties.setProperty(String.format("mail.%s.socketFactory.class", protocol), "javax.net.ssl.SSLSocketFactory");
properties.setProperty(String.format("mail.%s.socketFactory.fallback", protocol), "false");
properties.setProperty(String.format("mail.%s.socketFactory.port", protocol), String.valueOf(port));
properties.setProperty("mail.mime.decodetext.strict", "false");
return Session.getInstance(properties);
}
public synchronized List
store = session.getStore(protocol);
store.connect(host, username, password);
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
final Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
return Lists.newArrayList(messages);
}
Stack Trace:
Caused by: java.lang.NullPointerException: null
at javax.mail.internet.MimeUtility.quote(MimeUtility.java:975) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.ParameterList.quote(ParameterList.java:672) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.ParameterList.access$200(ParameterList.java:76) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.ParameterList$ToStringBuffer.addNV(ParameterList.java:640) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.ParameterList.toString(ParameterList.java:621) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.ContentType.toString(ContentType.java:221) ~[mail-1.4.7.jar:1.4.7]
at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:644) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1420) ~[mail-1.4.7.jar:1.4.7]
at com.brooma.legalsm.task.manager.util.MailParser.plainText(MailParser.java:44) ~[legalsm-task-manager-1.0.jar:na]
at com.brooma.legalsm.task.manager.util.MailParser.
Ответ
Это баг: https://kenai.com/bugzilla/show_bug.cgi?id=5978
Для решения необходимо использовать версию 1.5.5 и следующую зависимость:
Комментариев нет:
Отправить комментарий