com.sun.mail.util.DecodingException: BASE64Decoder: ошибка в закодированном потоке при получении почты от Yahoo

Мне очень помог StackOverflow, поэтому я хотел опубликовать это, чтобы сэкономить другим часы, которые я потратил на его отладку:

Я использую приложение Java для получения почты через IMAP/SSL. Ладно на месяцы. Теперь проблемы с конкретным сообщением от Yahoo. Сообщение состоит из нескольких частей/альтернативных частей, состоящих из текстовой/простой части в кодировке base64 и части text/html в кодировке base64.

Извлечение не удается с:

IOException: com.sun.mail.util.DecodingException: BASE64Decoder: Error in encoded stream: needed 4 valid base64 characters but only got 3 before EOF, the 10 most recent characters were: "IPONREPLY>" :[com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:256), com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:110)...

Само содержимое выглядит нормально при использовании почтового клиента Yahoo. Глядя на то, что извлекает мое приложение в части HTML, я вижу в конце части text/html, закодированной в base64:

[...]
YWdlcy9iank1LzQ5NjViOGUyLTQxYjEtNGFhNi1iOGFhLTEzNGQwYjYxMWM5My5naWZ4IiAvPg0K
DQo8L2JvZHk+PC9odG1sPg==
<XHTML-STRIPONREPLY>                                                                               


                 </XHTML-STRIPONREPLY>

Это текст, который Yahoo недавно начал добавлять в сообщения. Он работает с текстом, который не закодирован или использует кодировку для печати в кавычках, но разбивает части, закодированные в base64.

Я подал отчет в Yahoo, так что надеюсь, что они скоро это исправят.


person user1605747    schedule 17.08.2012    source источник


Ответы (1)


Попробуйте установить свои свойства с помощью:

properties.setProperty("mail.imaps.partialfetch", "false");
person leocborges    schedule 10.05.2013