-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 回答