从 MimeMessage 转换为字节数组
Posted
技术标签:
【中文标题】从 MimeMessage 转换为字节数组【英文标题】:Conversion from MimeMessage to byte array 【发布时间】:2012-01-17 21:05:06 【问题描述】:我需要将 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】:您的 mime 消息包含 Quoted-Printable Encoding,请参阅 MIME RFC 1521,因此您需要在保存之前对其进行解码。
您应该能够为此使用 javax.mail.internet.MimeUtility.decode。
【讨论】:
谢谢,这就是问题所在。以上是关于从 MimeMessage 转换为字节数组的主要内容,如果未能解决你的问题,请参考以下文章
错误 1075:从 UDF 接收到一个字节数组。无法确定如何将字节数组转换为字符串
Pig ERROR 1075:从 UDF 接收到一个字节数组。无法确定如何将字节数组转换为字符串