Преобразование из MimeMessage в байтовый массив - PullRequest
0 голосов
/ 11 декабря 2011

Мне нужно преобразовать MimeMessage в байтовый массив, но при преобразовании некоторые символы не закодированы правильно. Код выглядит так:

// message is MimeMessage
ByteArrayOutputStream baos = new ByteArrayOutputStream();
message.writeTo(baos);
byte[] bytes = baos.toByteArray(); 

Это преобразование не работает должным образом, в результате я получаю неправильно отформатированное тело письма:

<html xmlns=3D"http://www.w3.org/1999/xhtml" xml:lang=3D"en" lang=3D"en"
   >
<body style=3D"background-color: #ffffff;"  >

...

3D не должно присутствовать в этом (xmlns = 3D"http :). Я могу удалить его, но это не безопасное решение, я могу случайно удалить некоторый контент из тела письма.

Любой совет может помочь.

1 Ответ

2 голосов
/ 11 декабря 2011

Ваше сообщение MIME содержит кодируемую для печати кодировку, см. MIME RFC 1521 , поэтому вам нужно декодировать его перед сохранением.

Вы должны иметь возможность использовать javax.mail.internet.MimeUtility.decode для этого.

...