28
Дек
2015

NPE в теле почтового сообщения. Java получение сообщений mail.ru

При получении почтового сообщения с 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<Message> receiveMessages(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.<init>(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

Источник: https://ru.stackoverflow.com/questions/478596/npe-%D0%B2-%D1%82%D0%B5%D0%BB%D0%B5-%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-java-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-mail-ru

Тебе может это понравится...

Добавить комментарий