Java 从MimeMessage到字节数组的转换

Java 从MimeMessage到字节数组的转换,java,mime,mime-message,Java,Mime,Mime Message,我需要将MimeMessage转换为字节数组,但在转换时,某些字符的编码不正确。代码如下所示: // message is MimeMessage ByteArrayOutputStream baos = new ByteArrayOutputStream(); message.writeTo(baos); byte[] bytes = baos.toByteArray(); 此转换无法正常工作,因为我收到的输出格式错误的电子邮件正文: <html xmlns=3D"http://ww

我需要将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:)。我可以删除它,但这不是一个安全的解决方案,我可能会意外删除电子邮件正文中的某些内容


任何提示都可能有所帮助。

您的mime消息包含引用的可打印编码,请参阅,因此您需要在保存之前对其进行解码


您应该能够使用javax.mail.internet.MimeUtility.decode进行此操作。

这与序列化无关。谢谢,这就是问题所在。