2007年02月27日

JavaMail 刪除信件的程式

因為春節大家都放假了,而幾天沒有收信的結果下
大家的垃圾信可說是殺也殺不完啊
就花了一些時間寫了小程式來幫忙砍特定的mail了,完整的程式碼請看下面:


import java.util.Properties;
import javax.mail.Session;
import javax.mail.PasswordAuthentication;
import javax.mail.Authenticator;
import javax.mail.Store;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Flags;

public class jmail {
  static String name = "test";
  static String pwd = "test";
  public jmail() {
  }

  public static void main(String[] a) {
    try {
      //建位連結資料
      Properties props = System.getProperties();
      props.put("mail.transport.protocol", "imap");
      props.put("mail.smtp.host", "192.168.1.213");
      props.put("mail.user", "mmsmgr");
//      props.put("mail.debug", "true");
      //建立mail的session
      Session session = Session.getDefaultInstance(props, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication(name, pwd);
        }
      });
      System.out.println("mail session:" + session);
      //設定連結的協定
      Store store = session.getStore("imap");
      //設定連結的必要資料
      store.connect("192.168.1.213",name,pwd);
      System.out.println("store:"+store);
      Folder folder = store.getFolder("INBOX");
      folder.open(Folder.READ_WRITE);
      //現在的folder為何
      System.out.println("folder:"+folder);
      Message[] message = folder.getMessages();
      //是否有信件
      System.out.println("message:"+message);
      String subject = null;
      if(message!=null ) {
        int total = folder.getMessageCount();
        //總信件
        System.out.println("mail total:"+total);
        for(int i = 0 ; i < message.length ; i++) {
          subject = message[i].getSubject();
          System.out.println("subject:"+subject);
          System.out.println("context:"+message[i].getContent());
          //符合刪除條件的mail
          if(subject!=null && subject.indexOf("Spam")>0) {
            message[i].setFlag(Flags.Flag.DELETED, true);
          }
        }
      }
      //確定刪除信件
      folder.expunge();
      //關畢資源
      folder.close(true);
      store.close();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}


Posted by my_work at 樂多Roodo! │17:47 │回應(0)引用(0)java
樂多分類:網路/3C 共同主題:java 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2777433