处理中文问题,给你一段代码看一下:
public String getsubject(Message m) throws Exception {
boolean bgetstr;
String temps;
String[] ta1 = m.getHeader("Subject");
String _subject;
if (ta1 != null)
_subject = ta1[0];
else
_subject = "";
if (_subject.indexOf("=?gb2312") != -1
|| _subject.indexOf("=?GBK") != -1
|| _subject.indexOf("=?utf-8") != -1)
bgetstr = false;
else
bgetstr = true;
try {
temps = MimeUtility.decodeText(_subject);
} catch (UnsupportedEncodingException E) {
return _subject;
}
if (temps.length() == 0) {
temps = "£¨ÎÞÖ÷Ì⣩";
bgetstr = false;
}
if (bgetstr == false)
return temps;
else
return getstr(temps);
}
public static String getstr(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859-1");
String temp = new String(temp_t);
return temp;
} catch (Exception e) {
return "";
}
}

解决方案 »

  1.   


    message mess=folder.getMessage(messageid);
    if(mess.isMimeType("multipart/*")){
    Multipart multipart=(Multipart)mess.getContent();for(int i=0,n=multipart.getCount();i<n;i++){
    Part part=multipart.getBodyPart(i);String disposition=part.getDisposition();
    if(disposition!=null&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE))){FileOutputStream outFile=new FileOutputStream(part.getFileName());BufferedInputStream in=new BufferedInputStream(part.getInputStream());int c;
    while((c=in.read())!=-1){
    outFile.write(c);
    }
    outFile.close();
    }
    }试试看
    不知道行不行
    没用过
      

  2.   

    String[] fileName=null;
    InputStream[] inputStream=null;
    Object o=themessage[number].getContent();//当Message对象含有附件时,其内容会以Multipart的形式存在
    if(o instanceof String)
    {
      //不含附件
    }
    else if(o instanceof Multipart)
    {
      //可能含有附件
      //以Multipart的getBodyPart方法取得内容部分,并以getDisposition方法取得邮件的配置
      Multipart mp =(Multipart)o;
      fileName=new String[mp.getCount()];
      inputStream=new InputStream[mp.getCount()];
      for(int i=0,n=mp.getCount();i<n;i++)
      {
        Part part=mp.getBodyPart(i);
        if(i==0)
        {Content=part.getContent().toString();}
        String disposition =part.getDisposition();
        //判断Multipart中是否含有附件的方法.则是依据getDisposition所返回的内容
        if((disposition !=null)&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE)))
        {
           fileName[i]=part.getFileName();
           System.out.println(fileName[i]);
           fileName[i]=fileName[i].valueOf(i)+fileName[i].substring(fileName[i].indexOf("."),fileName[i].length());
           System.out.println(fileName[i]);
           inputStream[i]=part.getInputStream();
           System.out.println(inputStream[i].toString());
           String pathName="D:\\Online\\defaultroot\\mail\\附件\\";
           File file=new File(pathName + fileName[i]);
           FileOutputStream outfile=new FileOutputStream(file);
           BufferedInputStream br=new BufferedInputStream(inputStream[i]);
           BufferedOutputStream bw=new BufferedOutputStream(outfile);
      
           int b;
           while((b=br.read())!=-1)
           {
        bw.write(b);
           }
           bw.flush();
           outfile.close();
        }
      }
    }
      

  3.   

    去看看RFC1341技术规范(有关MIME的)吧, 昨天小弟刚看过, 只可惜是e文的, 如果哪位中文的, 记得给小弟一份啊, :)
      

  4.   

    String filenames= part.getFileName();//得到附件名称
          filenames=MimeUtility.decodeText(filenames);//中文附件名编码
      

  5.   

    private String getGBStr(String s){
        try{
          String temp=s;
          byte[] tempb=temp.getBytes("ISO8859-1");
          String result=new String(tempb);
          return result;
        }
        catch(Exception e){    }
        return "null";
      }
    如果你有收邮件这个例子,文件能不能发到我的信箱[email protected]