public  class  Email_Autherticator  extends  Authenticator  
   {//此段代码用来进行服务器对用户的认证  
             public  Email_Autherticator()  
                 {  
                       super();  
                 }  
             public  PasswordAuthentication  getPasswordAuthentication()  
                 {  
                         return  new  PasswordAuthentication(username,password);  
                 }  
   }  
 
   void  jButton2_actionPerformed(ActionEvent  e)  {  
       try  
         {//该程序为接收邮件  
             Properties  props  =  System.getProperties();  //获取系统变量  
             Authenticator  auth  =  new  Email_Autherticator();      
             props.put("mail.smtp.host",host);  
             props.put("mail.smtp.auth","true");  
             Session  session  =  Session.getDefaultInstance(props,auth);  //建立session  
             Store  store  =  session.getStore("pop3");  
             store.connect(host,username,password);  
 
       //After  connecting  to  the  Store,you  can  get  a  Folder,which  must  be  opened  before  you  can  read  messages  from  it:  
             Folder  folder  =  store.getFolder("INBOX");//连接到Store后,取得一个文件夹,一般默认的是INDEX  
             folder.open(Folder.READ_WRITE);//READ_ONLY为打开方式  
             Message  message[]  =  folder.getMessages();//从文件夹获取邮件信息  
 
       //可以用两种方式去获得邮件信息,getContent()用来获得邮件的主体信息。而WriteTo()可以用来获得邮件的全部信息,包括头部信息  
       //      System.out.println(((MimeMessage)message).getContent());  
             for  (int  i=0,n=message.length;i<n;i++)  
                 {  
                         
                       String  out_from_person  =  ((InternetAddress)message[i].getFrom()[0]).getPersonal();  
                       String  out_from_address  =  ((InternetAddress)message[i].getFrom()[0]).getAddress();  
                       System.out.println("From:"+out_from_person+"\t");  
                       System.out.println("Address:"+out_from_address+"\t");  
 
                       String  out_subject  =  message[i].getSubject();  
                       System.out.println("Subject:"+out_subject+"\t");  
 
                       //以下代码用来获得邮件的正文信息  
                       Part  messagePart  =  message[i];  
                       Object  out_content  =  messagePart.getContent();  
                       if  (out_content  instanceof  Multipart)  
                           {  
                                 messagePart  =  ((Multipart)out_content).getBodyPart(0);  
                                 System.out.println("[  Multipart  Message  ]");  
                           }  
                       String  out_content_type  =  messagePart.getContentType();  
                       System.out.println("CONTENT:"+out_content_type);  
 
                       if  (out_content_type.startsWith("text/plain")    &brvbar;  &brvbar;  out_content_type.startsWith("text/html"))  
                           {  
                                   InputStream  ipstm  =  messagePart.getInputStream();  
                                   BufferedReader  bufreader  =  new  BufferedReader(new  InputStreamReader(ipstm));  
                                   String  thisLine  =  bufreader.readLine();  
                                   while  (thisLine  !=  null)  
                                       {  
                                               System.out.println("thisLine:  "+thisLine);  
                                               thisLine  =  bufreader.readLine();  
                                       }  
                           }  
                       System.out.println("------------------------------------------------------------");  
                       message[i].setFlag(Flags.Flag.DELETED,true);//最后删除服务器端的邮件  
                 }  
                           //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER  
             folder.close(true);//true的话,彻底删除已经标记为DELETE的邮件,如果为false的话,就不删除  
             store.close();//关闭  
         }  
       catch(Exception  ej2)  
         {  
               System.out.println(ej2);  
         }  
   }  
 
   void  jButton4_actionPerformed(ActionEvent  e)  {  
       try  
         {//该程序为回复邮件  
             Properties  props  =  System.getProperties();  //获取系统变量  
             Authenticator  auth  =  new  Email_Autherticator();    //取得穃uFFFD衿魅现?  
             props.put("mail.smtp.host",host);  
             props.put("mail.smtp.auth","true");  
             Session  session  =  Session.getDefaultInstance(props,auth);  //建立session  
             Store  store  =  session.getStore("pop3");  
             store.connect(host,username,password);  
 
             Folder  folder  =  store.getFolder("INBOX");  
             folder.open(Folder.READ_WRITE);  
             Message  message[]  =  folder.getMessages();  
 
             for  (int  i=0,n=message.length;i<n;i++)  
                 {  
   //                String  out_from_person  =  ((InternetAddress)message[i].getFrom()[0]).getPersonal();//获取邮件发信人的署名  
     
                       String  out_from_address  =  ((InternetAddress)message[i].getFrom()[0]).getAddress();  
                       System.out.println(out_from_address);  
 
                       Message  forward  =  new  MimeMessage(session);  
                       forward.setSubject("Fwd:"+message[i].getSubject());  
                       forward.setFrom(new  InternetAddress(mail_to));  
                       forward.addRecipient(Message.RecipientType.TO,new  InternetAddress(out_from_address));  
 
                       BodyPart  messageBodyPart  =  new  MimeBodyPart();  
                       messageBodyPart.setText("Here  you  go  with  the  original  message:\n\n");  
 
                       Multipart  multipart  =  new  MimeMultipart();  
                       multipart.addBodyPart(messageBodyPart);  
 
                       messageBodyPart  =  new  MimeBodyPart();  
                       messageBodyPart.setDataHandler(message[i].getDataHandler());  
 
                       multipart.addBodyPart(messageBodyPart);  
                       forward.setContent(multipart);  
 
                       Transport.send(forward);  
                       message[i].setFlag(Flags.Flag.DELETED,true);//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER  
                 }  
             folder.close(true);  
             store.close();//关闭  
         }  
       catch(Exception  ej2)  
         {  
               System.out.println(ej2);  
         }  
 
   }

解决方案 »

  1.   

    void  jButton5_actionPerformed(ActionEvent  e)  {  
                 try  
                     {//此段代码用来发送带有附件的邮件  
                           Properties  props  =  new  Properties();  
                           Authenticator  auth  =  new  Email_Autherticator();  
     
                           props.put("mail.smtp.host",host);  
                           props.put("mail.smtp.auth","true");  
                           Session  session  =  Session.getDefaultInstance(props,auth);  
                           MimeMessage  message  =  new  MimeMessage(session);  
                           message.setContent("Hello","text/plain");  
                           message.setSubject(mail_subject);  
                           message.setText(mail_body);  
                           message.setHeader(mail_head_name,mail_head_value);  
                           message.setSentDate(new  Date());  
                           message.setFrom(new  InternetAddress(mail_from,"sunxiaoming"));  //to  signal  man  
    //原理:可以将邮件看成有多个部分组成的,如正文是一个部分,附件也是一个部分,所以用BodyPart来设置邮件的格式  
                           message.addRecipient(Message.RecipientType.TO,new  InternetAddress(mail_to));  
                           BodyPart  messageBodyPart  =  new  MimeBodyPart();  
                           messageBodyPart.setText("Pardon  Ideas");  
                           Multipart  multipart  =  new  MimeMultipart();  
                           multipart.addBodyPart(messageBodyPart);  
     
                           messageBodyPart  =  new  MimeBodyPart();  
                           DataSource  source  =  new  FileDataSource("./20020423/test.zip");//此处设置邮件的附件  
                           messageBodyPart.setDataHandler(new  DataHandler(source));  
                           messageBodyPart.setFileName("test.zip");  
                           multipart.addBodyPart(messageBodyPart);  
                           message.setContent(multipart);  
                           Transport.send(message);  
                           System.out.println("send  ok!");  
                     }  
                 catch(Exception  ex)  
                     {  
                           System.out.println("faild"+ex);  
                     }  
     
       }  
     
       void  jButton6_actionPerformed(ActionEvent  e)  {  
           try  
             {//该程序为接受带有附件的邮件的代码  
                 Properties  props  =  System.getProperties();    
                 Authenticator  auth  =  new  Email_Autherticator();      
                 props.put("mail.smtp.host",host);  
                 props.put("mail.smtp.auth","true");  
                 Session  session  =  Session.getDefaultInstance(props,auth);  //建立session  
                 Store  store  =  session.getStore("pop3");  
                 store.connect(host,username,password);  
     
           //After  connecting  to  the  Store,you  can  get  a  Folder,which  must  be  opened  before  you  can  read  messages  from  it:  
                 Folder  folder  =  store.getFolder("INBOX");  
                 folder.open(Folder.READ_WRITE);  
                 Message  message[]  =  folder.getMessages();  
     
                 for  (int  i=0,n=message.length;i<n;i++)//可能有多个邮件,所以用循环  
                     {  
                           //获得邮件的部分信息,如头部信息,送信人的署名,送信人的邮件地址  
                           String  out_from_person  =  ((InternetAddress)message[i].getFrom()[0]).getPersonal();  
                           String  out_from_address  =  ((InternetAddress)message[i].getFrom()[0]).getAddress();  
                           System.out.println("From:"+out_from_person+"\t");  
                           System.out.println("Address:"+out_from_address+"\t");  
                           String  out_subject  =  message[i].getSubject();  
                           System.out.println("Subject:"+out_subject+"\t");  
     
                           //以下代码用来获取邮件的主体信息  
                           Part  messagePart  =  message[i];  
                           Object  out_content  =  messagePart.getContent();  
                           if  (out_content  instanceof  Multipart)  
                               {  
                                     messagePart  =  ((Multipart)out_content).getBodyPart(0);  
                                     System.out.println("[  Multipart  Message  ]");  
                               }  
                           String  out_content_type  =  messagePart.getContentType();  
                           System.out.println("CONTENT:"+out_content_type);  
     
                           if  (out_content_type.startsWith("text/plain")    &brvbar;  &brvbar;  out_content_type.startsWith("text/html"))  
                               {  
                                       InputStream  ipstm  =  messagePart.getInputStream();  
                                       BufferedReader  bufreader  =  new  BufferedReader(new  InputStreamReader(ipstm));  
                                       String  thisLine  =  bufreader.readLine();  
                                       while  (thisLine  !=  null)  
                                           {  
                                                   System.out.println("thisLine:  "+thisLine);  
                                                   thisLine  =  bufreader.readLine();  
                                           }  
                               }  
                           //获取附件  
                           Multipart  mp  =  (Multipart)message[i].getContent();  
                           for  (int  j=0,m=mp.getCount();j<m;j++)  
                               {  
                                     System.out.println("***"+m+"***");  
                                     Part  part  =  mp.getBodyPart(j);  
                                     String  disposition  =  part.getDisposition();  
                                     if  ((disposition  !=  null)  &&  ((disposition.equals(part.ATTACHMENT))    &brvbar;  &brvbar;  (disposition.equals(part.INLINE))))  
                                         {  
     
                                         //以下代码将获得的附件保存到当前目录下,以part.getFileName()为文件名,也既是附件的名称。  
                                                 File  filename  =  new  File(part.getFileName());  
                                                 for  (int  k=0;filename.exists();k++)  
                                                     {  
                                                               filename  =  new  File(part.getFileName()+k);  
                                                     }  
                                                 FileOutputStream  myFileoutputstream  =  new  FileOutputStream(filename);  
                                                 int  chunk  =  part.getSize();//获得附件的大小,不一定很准确。  
     
                                                 byte  []  buffer  =  new  byte[chunk];  
                                                 InputStream  instream  =  part.getInputStream();  
                                                 instream.read(buffer,0,chunk);  
                                                 myFileoutputstream.write(buffer,0,chunk);  
                                                 instream.close();  
                                                 myFileoutputstream.close();  
                                         }  
                               }  
                           System.out.println("------------------------------------------------------------");  
                           message[i].setFlag(Flags.Flag.DELETED,true);  
                     }  
                 folder.close(true);  
                 store.close();//关闭  
             }  
           catch(Exception  ej2)  
             {  
                   System.out.println(ej2);  
             }  
       }  
      

  2.   

    void  jButton8_actionPerformed(ActionEvent  e)  {  
                 try  
                     {//此段代码用来发送带有html信息的邮件  
                           Properties  props  =  new  Properties();  
                           Authenticator  auth  =  new  Email_Autherticator();  
                           props.put("mail.smtp.host",host);  
                           props.put("mail.smtp.auth","true");  
                           Session  session  =  Session.getDefaultInstance(props,auth);  
                           MimeMessage  message  =  new  MimeMessage(session);  
                       //设置邮件正文  
                           String  htmltext="<h1>hello</h1>"+"<a  href=\"http://www.sina.com.cn\"  target=\"_blank\">click  me  please!</a>";  
                           message.setContent(htmltext,"text/html");//text/plain设置邮件的格式因为是带有html文档的,所以用text/html格式  
     
                           message.setSubject(mail_subject);  
                     //      message.setText(mail_body);在使用message.setContent()时候,好象不能用message.setText()  
                           message.setHeader(mail_head_name,mail_head_value);  
                           message.setSentDate(new  Date());  
                           Address  address  =  new  InternetAddress(mail_from,"sunxiaoming");  
                           message.setFrom(address);    
                           Address  toAddress  =  new  InternetAddress(mail_to);  
                           message.addRecipient(Message.RecipientType.TO,toAddress);  
                           Transport.send(message);  
                           System.out.println("send  ok!");  
                     }  
                 catch(Exception  ex)  
                     {  
                           System.out.println("faild"+ex);  
                     }  
     
       }  
     
       void  jButton9_actionPerformed(ActionEvent  e)  {  
                 try  
                     {//此段代码用来发送带有图片的邮件  
                           String  file  =  "./20020423/test.gif";  
                           Properties  props  =  new  Properties();  
                           Authenticator  auth  =  new  Email_Autherticator();  
     
                           props.put("mail.smtp.host",host);  
                           props.put("mail.smtp.auth","true");  
                           Session  session  =  Session.getDefaultInstance(props,auth);  
                           MimeMessage  message  =  new  MimeMessage(session);  
     
                           message.setSubject("Embedded  Image");  
                           Address  address  =  new  InternetAddress(mail_from,"sunxiaoming");  
                           message.setFrom(address);    
                           Address  toAddress  =  new  InternetAddress(mail_to);  
                           message.addRecipient(Message.RecipientType.TO,toAddress);  
                           message.setHeader(mail_head_name,mail_head_value);  
                           message.setSentDate(new  Date());  
     
                           BodyPart  messageBodyPart  =  new  MimeBodyPart();  
                           String  htmlText  =  "<h1><hello></h1>"+"<img  src=\"cid:memememe\">";//加入图片  
                           messageBodyPart.setContent(htmlText,"text/html");  
                     //原理同发送附件一样,将邮件看成有多个部分组成的,先设置每一个部分,然后再全部将它们合起来即可。  
                           //Create  a  related  multi-part  to  combine  the  parts  
                           MimeMultipart  multipart  =  new  MimeMultipart("related");  
                           multipart.addBodyPart(messageBodyPart);  
     
                           //Create  part  for  the  image  
                           messageBodyPart  =  new  MimeBodyPart();  
     
                           //Fetch  the  image  and  associate  to  part  
                           DataSource  fds  =  new  FileDataSource(file);  
                           messageBodyPart.setDataHandler(new  DataHandler(fds));  
                           messageBodyPart.setHeader("Content-ID","memememe");  
     
                           //Add  part  to  multi-part  
                           multipart.addBodyPart(messageBodyPart);  
     
                           //Associate  multi-part  with  message  
                           message.setContent(multipart);  
     
                           Transport.send(message);  
                           System.out.println("send  ok!");  
                     }  
                 catch(Exception  ex)  
                     {  
                           System.out.println("faild"+ex);  
                     }  
     
       }  
      

  3.   

    谢谢楼主和 Anubis(为朋友两肋插刀,为MM插朋友两刀!!) 
    偶已经收藏了
      

  4.   


       void  jButton7_actionPerformed(ActionEvent  e)  {  
           try  
             {//该程序用来接受带有html信息的邮件  
                 Properties  props  =  System.getProperties();    
                 Authenticator  auth  =  new  Email_Autherticator();  
                 props.put("mail.smtp.host",host);  
                 props.put("mail.smtp.auth","true");  
                 Session  session  =  Session.getDefaultInstance(props,auth);  
                 Store  store  =  session.getStore("pop3");  
                 store.connect(host,username,password);  
     
           //After  connecting  to  the  Store,you  can  get  a  Folder,which  must  be  opened  before  you  can  read  messages  from  it:  
                 Folder  folder  =  store.getFolder("INBOX");  
                 folder.open(Folder.READ_WRITE);  
                 Message  message[]  =  folder.getMessages();  
     
                 for  (int  i=0,n=message.length;i<n;i++)  
    //                  for  (int  i=0,n=1;i<n;i++)//only  one  letter  received  from  inbox  //for  debug  
                     {  
                           String  out_from_person  =  ((InternetAddress)message[i].getFrom()[0]).getPersonal();  
                           String  out_from_address  =  ((InternetAddress)message[i].getFrom()[0]).getAddress();  
                           System.out.println("From:"+out_from_person+"\t");  
                           System.out.println("Address:"+out_from_address+"\t");  
     
                           String  out_subject  =  message[i].getSubject();  
                           System.out.println("Subject:"+out_subject+"\t");  
     
                           //获取邮件的信息,并且对其每一部分进行操作  
                           Part  messagePart  =  message[i];  
                           Object  out_content  =  messagePart.getContent();  
                           if  (out_content  instanceof  Multipart)  
                               {  
                                     messagePart  =  ((Multipart)out_content).getBodyPart(0);  
                                     System.out.println("[  Multipart  Message  ]");  
                               }  
                           String  out_content_type  =  messagePart.getContentType();  
                           System.out.println("CONTENT:"+out_content_type);  
     
                           jEditorPane1.setText("");//将其显示在jEditorPanel上  
                           jEditorPane1.setContentType("text/html");  
                           jEditorPane1.setText((String)out_content);  
                           jEditorPane1.setEditable(false);  
     
    /*  
                           if  (out_content_type.startsWith("text/plain")    &brvbar;  &brvbar;  out_content_type.startsWith("text/html"))  
                               {  
                                       InputStream  ipstm  =  messagePart.getInputStream();  
                                       BufferedReader  bufreader  =  new  BufferedReader(new  InputStreamReader(ipstm));  
                                       String  thisLine  =  bufreader.readLine();  
                                       while  (thisLine  !=  null)  
                                           {  
                                                   System.out.println("thisLine:  "+thisLine);  
                                                   thisLine  =  bufreader.readLine();  
                                           }  
                               }  
    */  
                           System.out.println("------------------------------------------------------------");  
                           message[i].setFlag(Flags.Flag.DELETED,true);  
                     }  
                 folder.close(true);  
                 store.close();  
             }  
           catch(Exception  ej2)  
             {  
                   System.out.println(ej2);  
             }  
     
       }