javamail接收邮件不能正确显示正文问题 用System.out.println(msg.getContent());显示邮件内容,结果总是显示javax.mail.internet.MimeMultipart@c282a1做了编码转换也不行但能正确显示发件人,主题等.什么原因呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个说明你的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());} 谢谢按你说的改了以后做了测试,有得邮件正常显示了.可是有的邮件显示:java.io.UnsupportedEncodingException:gbk有的邮件显示:javax.mail.internet.MimeMultipart@8bdcd2请问如何修改啊? 第一个是邮件编码问题,不识别gbk,你可以用base64转换一下,就可以正常显示了。每二个返回还是MimeMultipart。你用getContentType()方法看下他的类型。再次用下getContent()方法应该就可以了吧。例如这样写邮件的发送,返回的就是MimeMultipart,应该就会出现每二种情况。发邮件是msg.setSubject("测试标题");Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();contentPart.setText("测试内容!");multipart.addBodyPart(contentPart);msg.setContent(multipart); 谢谢liusx0113魔狂针对这两个问题能否给段代码示例,我不知道怎样用base64转换呢,还有怎样看类型再用getContent()啊. java web开发怎么获得本地计算机名或IP啊,高手请指教。 简单问题 带新人学J2EE,有想法者请进.只带新人.有浓厚兴趣的. tomcat、apache下相关问题 提前给老师拜年了!小弟不知道下哪个版本的Sturts, 请指教!在线等! webwork官网地址多少 哪里有webwork学习资料 为什么jsp表单发给mysql的中文都是乱码 问一个jsp网页上显示新闻目录的问题。 【犒赏三军将士】想知道本版各位兄弟的年龄和工作:) 表单和ajax的重复提交问题 50分看一下这个程序 java中list输出的值是由类名和 标记符“@”和此对象哈希代码的无符号十六进制表示组成
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());
}
可是有的邮件显示:java.io.UnsupportedEncodingException:gbk
有的邮件显示:javax.mail.internet.MimeMultipart@8bdcd2请问如何修改啊?
每二个返回还是MimeMultipart。你用getContentType()方法看下他的类型。再次用下getContent()方法应该就可以了吧。例如这样写邮件的发送,返回的就是MimeMultipart,应该就会出现每二种情况。
发邮件是msg.setSubject("测试标题");
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setText("测试内容!");
multipart.addBodyPart(contentPart);
msg.setContent(multipart);
我不知道怎样用base64转换呢,还有怎样看类型再用getContent()啊.