#java #javamail
При получении почтового сообщения с 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 ListreceiveMessages(String protocol, String host, Integer port, String username, String password) throws MessagingException { final Session session = session(protocol, host, port); 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. (MailParser.java:30) ~[legalsm-task-manager-1.0.jar:na] at com.brooma.legalsm.task.manager.util.MailParser.create(MailParser.java:96) ~[legalsm-task-manager-1.0.jar:na] at com.brooma.legalsm.task.manager.job.IssueFromEmailJob.processEmail(IssueFromEmailJob.java:83) ~[legalsm-task-manager-1.0.jar:na] at com.brooma.legalsm.task.manager.job.IssueFromEmailJob.lambda$execute$0(IssueFromEmailJob.java:69) ~[legalsm-task-manager-1.0.jar:na] at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_65] at com.brooma.legalsm.task.manager.job.IssueFromEmailJob.execute(IssueFromEmailJob.java:69) ~[legalsm-task-manager-1.0.jar:na] ... 2 common frames omitted
Ответы
Ответ 1
Это баг: https://kenai.com/bugzilla/show_bug.cgi?id=5978 Для решения необходимо использовать версию 1.5.5 и следующую зависимость:javax.mail javax.mail-api ${javax.mail.version}
Комментариев нет:
Отправить комментарий