日期:2014-05-18  浏览次数:20710 次

javamail接收邮件不能正确显示正文问题
用System.out.println(msg.getContent());显示邮件内容,结果
总是显示javax.mail.internet.MimeMultipart@c282a1
做了编码转换也不行
但能正确显示发件人,主题等.

什么原因呢?

------解决方案--------------------
这个说明你的msg.getContent()回去的MimeMultipart有多个部分,例如有附件。你用int mpCount = mp.getCount();看看他有多少部分。再判断下:
int mpCount = mp.getCount();
for (int m = 0; m < mpCount; m++) {
BodyPart part = mp.getBodyPart(m);
String disposition = part.getDisposition();
// 判断是否有附件
if (disposition != null && disposition.equals(Part.ATTACHMENT)) {
//打印出附件名
System.out.println(part.getFileName());//名字若是中文,要经过了base64转换一下
} else {
// 不是附件,就只显示文本内容
System.out.println(part.getContent());
}
------解决方案--------------------
编码问题