少年阿賓

          那些青春的歲月

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



          給一個(gè)成功例子大家參考:.

          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 + "個(gè):" + 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("這是回復(fù)郵件,不知道能否成功!"); 
                           replyMessage.saveChanges();
                           Transport transport = session.getTransport("smtp");
                           transport.connect(SEND_HOST_NAME,  USER_NAME, PASSWORD);
                           transport.send(replyMessage);
                           System.out.println("回復(fù)成功");               
                       }  
                   }
                   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) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 贡觉县| 山东| 克拉玛依市| 会理县| 昌江| 北流市| 杨浦区| 轮台县| 万州区| 石泉县| 陕西省| 环江| 中西区| 赤壁市| 习水县| 托克逊县| 曲水县| 尼木县| 犍为县| 湘潭市| 聊城市| 衡东县| 芮城县| 巴里| 玉溪市| 高邮市| 江城| 桃源县| 若尔盖县| 广德县| 清涧县| 吕梁市| 阳山县| 花莲县| 兴城市| 同江市| 平顶山市| 雷波县| 自治县| 石柱| 石泉县|