我需要将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 :)。我可以删除它但这不是一个安全的解决方案,我可能会不小心从电子邮件正文中删除一些内容。< / p>
任何提示都可能有所帮助。
答案 0 :(得分:2)
您的mime邮件包含Quoted-Printable Encoding,请参阅MIME RFC 1521,因此您需要在保存之前对其进行解码。
你应该能够使用javax.mail.internet.MimeUtility.decode。