小弟用javamail接收邮件,搞了很久,但是没成功,能连上服务器,且显示出了主题,时间,但是没办法显示文本,大家帮一下忙,我搞了好久还是不懂,谢谢了大家.  
代码如下(比较粗糙)  
import  javax.swing.*;  
import  javax.mail.*;  
import  java.awt.*;  
import  java.awt.event.*;  
import  java.util.Vector;  
       public  class  Poptest  extends  JFrame{  
                       JButton  b=null;  
                       String  host="pop.163.com";  
                       String  user="xxx";  //请在这里设置用户,密码//
                       String  password="xxx";  
                       JPanel  list=null;  
                       JPanel  text=null;  
                       JList  messlist=null;  
                       JTextArea  content=null;  
                       JScrollPane  p=null;  
                       Vector  v;  
                       int  flag=1;  
                       public  Poptest(){  
           //---------------------------  界面部分------------------------/ /                         
                               b=new  JButton("打开附件");              
                                   list=new  JPanel();  
                                   text=new  JPanel();  
                                   JPanel  p1=new  JPanel();  
                                   JPanel  p2=new  JPanel();  
                                   JButton  exit=new  JButton("退出");  
                                   content=new  JTextArea(8,45);  
                                   p=new  JScrollPane(content);  
                                   Container  con=getContentPane();  
                                   v=new  Vector();              
                                   con.setLayout(new  GridLayout(2,1));  
                                   con.add(list);  
                                   con.add(text);  
                                   text.setBorder(BorderFactory.createTitledBorder("邮件內容"));  
                                   text.add(p1,BorderLayout.CENTER);  
                                   text.add(p2,BorderLayout.SOUTH);  
                                   p1.add(p);  
                                   p2.setLayout(new  FlowLayout());  
                                   p2.add(b);  
                                   p2.add(exit);  
                                   b.setEnabled(false);  
                                   messlist=new  JList(v);  
                                   list.setBorder(BorderFactory.createTitledBorder("邮件列表"));  
                                   list.setLayout(new  GridLayout(1,1));  
                                   list.add(messlist);  
                                   setSize(600,500);  
                                   Dimension  screen=getToolkit().getScreenSize();  
                               setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2);  
                                     
                       //----------------连接服务器,并显示出邮件主题,日期限--------//              
                                   try{  
             
                                   java.util.Properties  props=new  java.util.Properties();  
                                   props.put("mail.pop3.host",host);  
                                   Session  mailSession=Session.getDefaultInstance(props);  
                                   System.out.println("连接主机:"+host);  
                                   Store  mesgStore=mailSession.getStore("pop3");  
                                   mesgStore.connect(host,user,password);  
                                   System.out.println("连接中");  
                                   Folder  inbox=mesgStore.getDefaultFolder().getFolder("INBOX");  
                                   inbox.open(Folder.READ_ONLY);   
                                   Message[]  msgs=inbox.getMessages();  
                                   FetchProfile  profile=new  FetchProfile();  
                                   profile.add(FetchProfile.Item.ENVELOPE);  
                                   inbox.fetch(msgs,profile);              
                                   int  count  =inbox.getMessageCount();  
                                     
                                   for(int  i=0;i<count;i++){  
                                               v.addElement(msgs[i].getMessageNumber()+"---"+"主题:"+msgs[i].getSubject()+  
                                                                       "---"+msgs[i].getSentDate());  
                                   }  
                                   if(v.isEmpty()){  
                                               v.addElement("暂时没有新邮件");  
                                               b.setEnabled(false);  
                                               flag=0;  
                                               }  
                                   inbox.close(false);  
                               mesgStore.close();  
                                   System.out.print("断开连接!");  
             
                                   }catch(javax.mail.MessagingException  e){  
                                               e.printStackTrace();  
                                   }  
                         
//---------点击jist某项,显示出邮件内容--------------------------------//  
                                   messlist.addMouseListener(new  MouseAdapter(){  
                                               public  void  mouseClicked(MouseEvent  e){  
                                                                   int  index;  
                                                             if(flag==1){  
                                                                             index=messlist.locationToIndex(e.getPoint());  
                                                                             display(host,user,password,index+1);//此方法为显示邮件信息,具体在下面//  
                                                         }  
                                               }  
                                                 
                                   });  
                                   exit.addActionListener(new  ActionListener(){  
                                               public  void  actionPerformed(ActionEvent  e){  
                                                                     
                                                           System.exit(0);  
                                               }  
                                   });  
                                   show();                                      
                       }  

解决方案 »

  1.   


                           public    void  display(String  host,String  user,String  password,int  msgnum){  
                                       try{              
                                                   System.out.print("再次连接服务器");  
                                                   java.util.Properties  props=new  java.util.Properties();  
                                                   Session  mailSession=Session.getDefaultInstance(props);  
                                                   Store  mesgStore=mailSession.getStore("pop3");  
                                                   mesgStore.connect(host,user,password);  
                                                   Folder  inbox=mesgStore.getDefaultFolder().getFolder("INBOX");  
                                                   inbox.open(Folder.READ_ONLY);  
                                                   if(msgnum<=inbox.getMessageCount()){  
                                                   Message  theMessage=inbox.getMessage(msgnum);  
                                                               if(theMessage.isMimeType("text/plain")){  
                                                               String  text=(String)  theMessage.getContent();  
                                                               content.setText(text);              
                                                               }  
                                                               inbox.close(false);  
                                                           mesgStore.close();  
                                                     
                                                   }  
                                         }catch(Exception  e1){  
                                                               e1.printStackTrace();  
                                                     }                          
                                                                 
                           }  
                             
                           public  static  void  main(String  agrs[]){  
                                       new  Poptest();  
                           }  
                                         
               }