У меня есть письмо с следующим заголовком Тема
Тема:?? = UTF-8 B UmlmLiBQcmF0LjogNDhBVi04MDc5IEF0dHJhdmVyc2FtZW50byB0ZWxlZm9uaWNvIHN1cGVyaW9yZSwgaW4gY2F2ZWRpbyBlc2lzdGVudGUsIGNvbiBjYXZpIGEgRi5PLiBhbCBrbSA2NCs0MjAgZGVsbGEgbGluZWEgZmVycm92aWFyaWEgQVYvQUMgVG9yaW5vIC0gTWlsYW5vIG5lbCBDb211bmUgZGkgR3JlZ2dpbyAgW1JGSS1EUFItRFRQX1RPLklOR1xQRUNcUFwyMDE5XDAwMDUyNDRd = =
1004 * Я использую JavaMail 1.5.6, чтобы разобрать его и синтаксическийиз этого заголовка выдается исключение, в результате которого субъект не анализируется:
строка метода decodeWord класса MimeUtility 928
com.sun.mail.util.DecodingException: BASE64Decoder:Ошибка в закодированном потоке: нужно как минимум 2 действительных символа base64, но перед добавлением символа (=) было получено только 0, 10 самых последних символов были следующими: "wMDUyNDRd ="
В любом случае, это похоже на ошибку в декодере javamailесли я открою эту почту с помощью Outlook, тема будет прочитана хорошо
Например, это прекрасно работает:
String rawvalue = "UmlmLiBQcmF0LjogNDhBVi04MDc5IEF0dHJhdmVyc2FtZW50byB0ZWxlZm9uaWNvIHN1cGVyaW9yZSwgaW4gY2F2ZWRpbyBlc2lzdGVudGUsIGNvbiBjYXZpIGEgRi5PLiBhbCBrbSA2NCs0MjAgZGVsbGEgbGluZWEgZmVycm92aWFyaWEgQVYvQUMgVG9yaW5vIC0gTWlsYW5vIG5lbCBDb211bmUgZGkgR3JlZ2dpbyAgW1JGSS1EUFItRFRQX1RPLklOR1xQRUNcUFwyMDE5XDAwMDUyNDRd=?=";
// Get bytes from string
byte[] byteArray = Base64.decodeBase64(rawvalue.getBytes());
// Print the decoded string
String decodedString = new String(byteArray);
System.out.println(rawvalue + " = " + decodedString);
Thx