在方法体中可以将 content 打印出来, 但是不能将 conteng 返回,
很诡异的问题啊...虚心求教!public static String getMailContent(Part part)throws Exception{
StringBuffer bodytext = new StringBuffer();
String contenttype = part.getContentType();
int nameindex = contenttype.indexOf("name");
boolean conname =false;
if(nameindex != -1) conname=true;
//System.out.println("CONTENTTYPE: "+contenttype);
if(part.isMimeType("text/plain") && !conname){
bodytext.append((String)part.getContent());
}else if(part.isMimeType("text/html") && !conname){
bodytext.append((String)part.getContent());
}else if(part.isMimeType("multipart/*")){
Multipart multipart = (Multipart)part.getContent();
int counts = multipart.getCount();
for(int i=0;i<counts;i++){
getMailContent(multipart.getBodyPart(i));
}
}else if(part.isMimeType("message/rfc822")){
getMailContent((Part)part.getContent());
}
String content = bodytext.toString();
System.out.println(content);
return content;
}
在其他方法中调用该方法,取到的值为空...String content = getMailContent((Part)msg);
System.out.println("内容:" + content);代码没有BUG 可以正常运行控制台输出:第2封邮件
发件人:[email protected]
主题:webmail测试
发送日期:2009-05-11 07:12:23
大小:78KB邮件测试  怎么总是不行?!内容:

解决方案 »

  1.   

    可以讲content的内容输出,为什么不能将conteng返回呢?
    百思不得其解....求救!
      

  2.   

    控制台输出:第11封邮件
    发件人:[email protected]
    主题:图片邮件
    发送日期:2009-05-11 09:53:25
    大小:46KB
    CONTENTTYPE: multipart/mixed; 
    boundary="----=_Part_0_17028773.1242021172390"
    CONTENTTYPE: multipart/related; 
    boundary="----=_Part_1_17713075.1242021172437"
    CONTENTTYPE: text/html;charset=GB2312
    带图片的邮件!<img src="cid:qq">
    CONTENTTYPE: application/octet-stream内容:------------------------多了一行 CONTENTTYPE: application/octet-stream 
    是什么意思?
      

  3.   

    问题解决了,
    将StringBuffer定义在方法体外边就可以了

    private StringBuffer bodytext = new StringBuffer();
    public String getBodyText(){
    return bodytext.toString();
    }
      

  4.   

    我觉得这个问题解决的好怪异。即便原来StringBuffer定义在方法内部,返回的content已经toString变成普通字符串了,
    怎么会外边访问不到?楼主,加把劲,再研究一下,是这个原因吗?