少年阿賓

          那些青春的歲月

            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 閱讀(2038) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 赞皇县| 湖北省| 姚安县| 阿鲁科尔沁旗| 龙井市| 邵武市| 台东县| 兴山县| 达孜县| 苗栗县| 临湘市| 沽源县| 河曲县| 浮梁县| 曲阜市| 禄丰县| 金阳县| 盐源县| 开平市| 泽库县| 霍城县| 石渠县| 瑞昌市| 红桥区| 思南县| 云霄县| 永胜县| 来凤县| 铁岭县| 兴海县| 洛阳市| 沙河市| 巴塘县| 旅游| 利川市| 米脂县| 沁源县| 威海市| 田东县| 长武县| 闻喜县|