少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          郵件的回復的代碼很簡單,在迭代郵件的信息的時候調用MimeMessage reply = (MimeMessage) messages[i].reply(Boolean )  TRUE 是郵件回復給發送者,FALSE恢復給所有人。如果要回復到新的收件人請使用SetReply-to。
          同時可以使用 reply.setSubject(“***”)設置回復的標題,不設置的話默認是Re: 加上接收到郵件的標題。同理,也可以自己設置正文內容。
          這里一定要設置發送郵件的地址,而且必須要和郵件認證的用戶名一致,不然會報錯。
          最后調用Transport.send(reply)將郵件發出去
          注意:1、reply.setFrom() 必須要設置而且要和郵件認證的用戶名一致,不然會報以下錯誤:
          com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user
          2、建議使用郵件認證登陸郵件服務器,不然會出現以下錯誤:
          javax.mail.AuthenticationFailedException: failed to connect, no password specified?
          3、代碼雖然很簡單,但是程序難免會出現各種異常。如果大家在調試程序的時候出現錯誤,請給我留言。



          給一個成功例子大家參考:.

          import java.io.*;
            import java.util.*;
           
            import javax.mail.*;
            import javax.mail.internet.*;
           
            public class ReplyMail {
           
               private static final String HOST_NAME = "pop.qq.com";
               private static final String SEND_HOST_NAME = "smtp.qq.com";
               private static final String PASSWORD = "*******";
               private static final String EMAIL_FROM = "flyingsam@qq.com";
               private static final String USER_NAME = "flyingsam@qq.com";
               private static final String PROTOCOL = "pop3";
               private static final String SEND_PROTOCOL = "smtp";
              
               public static void listMail() throws Exception {
                   Properties props = new Properties();
                   props.put("mail.smtp.host", SEND_HOST_NAME);
                   props.put("mail.pop.host", HOST_NAME);
                   props.put("mail.transport.protocol","smtp");
                   props.put("mail.smtp.auth", "true");
           
                  
                   Session session = Session.getDefaultInstance(props, new SimpleAuthenticator(USER_NAME, PASSWORD));    
                   Store store = session.getStore(ReplyMail.PROTOCOL);  
                   store.connect(HOST_NAME, USER_NAME, PASSWORD);
                   Folder folder = store.getFolder("INBOX");
                   folder.open(Folder.READ_ONLY); 
                   Message[] messages = folder.getMessages();  
                   InternetAddress address;  
                   for (int i = messages.length-1; i >= 0; i--) {  
                       address = (InternetAddress)messages[i].getFrom()[0];  
                       if(address != null) {  
                           System.out.println(address.getPersonal());  
                       }
                       if (null != address && "秋天的童話".equals(address.getPersonal())) {  
                           System.out.println("第" + i + "個:" + messages[i].getSubject());  
                           MimeMessage replyMessage = (MimeMessage) messages[i].reply(false);  
            //                replyMessage.setFrom(new InternetAddress(EMAIL_FROM));
           
                           replyMessage.setRecipients(MimeMessage.RecipientType.TO, address.getAddress());
                           replyMessage.setText("這是回復郵件,不知道能否成功!"); 
                           replyMessage.saveChanges();
                           Transport transport = session.getTransport("smtp");
                           transport.connect(SEND_HOST_NAME,  USER_NAME, PASSWORD);
                           transport.send(replyMessage);
                           System.out.println("回復成功");               
                       }  
                   }
                   folder.close(true);  
                   store.close();
               }
              
               public static void main(String[] args) {
                   try {
                       ReplyMail.listMail();
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
               }
           
           }



          類SimpleAuthenticator的代碼:
          public class SimpleAuthenticator extends Authenticator {
              
               private String username;
              
               private String password;
              
               public SimpleAuthenticator(String username, String password) {
                   this.username = username;
                   this.password = password;
               }
           
               public PasswordAuthentication getPasswordAuthentication() {   
                   return new PasswordAuthentication(this.username, this.password);
           
               }
              
           }
          posted on 2012-02-16 10:30 abin 閱讀(2035) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 湖南省| 威海市| 宁武县| 四川省| 秀山| 新田县| 乳山市| 六盘水市| 龙江县| 郓城县| 嘉荫县| 涡阳县| 兴文县| 邻水| 长顺县| 广州市| 县级市| 广汉市| 韩城市| 常德市| 闵行区| 集安市| 扬州市| 博客| 洛扎县| 利津县| 唐山市| 钟祥市| 巴林右旗| 理塘县| 西乌珠穆沁旗| 栾城县| 大田县| 米林县| 深泽县| 崇明县| 海伦市| 张家港市| 阿克陶县| 汪清县| 新巴尔虎左旗|