你的这个问题最好找版主wjmmml来解决,wjmmml是一个JAVAMAIL的绝对高手!

解决方案 »

  1.   

    import javax.mail.*;
    import javax.mail.internet.*;
    import java.io.*;
    import java.util.*;public class ReadMail{
    public static void main(String[] args) throws NoSuchProviderException,MessagingException,IOException
    {
    //if(args.length!=3)return;
    //String host = args[0];
    //String user = args[1];
    //String pass = args[2];
    String host = "mail.163.com";
    String user = "user";
    String pass = "pass";
    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props,null);
    // session.setDebug(true);
    Store mailbox = session.getStore("pop3");
    mailbox.connect(host,user,pass);
    Folder inbox = mailbox.getFolder("INBOX");
    inbox.open(Folder.READ_ONLY);
    Message[] messages = inbox.getMessages();
    for(int i = 0 ; i < messages.length ; i++){
    Flags.Flag seen = Flags.Flag.SEEN;
    parseMail(messages[i]);
    messages[i].setFlag(seen,true);

    }
    }
    public static void parseMail(Message message) throws MessagingException,IOException
    {
    if(message.isMimeType("text/plain")){
    System.out.println(message.getContentType());
    System.out.print(message.getContent());
    System.out.println();
    System.out.println("================================");

    }else if(message.isMimeType("multipart/*")){
    Multipart multipart = (Multipart)message.getContent();
    int k = multipart.getCount();
    for(int i = 0;i<k;i++){
    BodyPart part = multipart.getBodyPart(i);
    //   if(part.getContentType().equals("text/plain")){
    InputStream in = part.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(in,"gb2312"));
    String line;
    while((line = br.readLine())!=null)
    System.out.println(line);
      //System.out.println(part.getContentType());
      //System.out.print(part.getContent());
      System.out.println();
      System.out.println("-------------------------------");
      //}else{
      // System.out.println("other contentType");
      // System.out.println("-------------------------------");
    //   }
    }
    System.out.println("==================================");
    }else{
    System.out.println("other contentType");
    System.out.println("=================================");
    }
    }
    }如果邮件中有附件的话,邮件MIME类型是multipart/*,content是MultiPart,MultiPart里包含着附件,要将这些附件分解出来。上面只是分解了text