-2

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 :)。削除することはできますが、これは安全な解決策ではありません。誤ってメール本文から一部のコンテンツを削除する可能性があります。

どんなヒントでも役立つかもしれません。

4

1 に答える 1

2

MIME メッセージには Quoted-Printable Encoding が含まれています。MIME RFC 1521を参照してください。保存する前にデコードする必要があります。

これには javax.mail.internet.MimeUtility.decode を使用できるはずです。

于 2011-12-11T14:50:00.483 に答える