細心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學業,五六點粗墨,七八筆買賣,九十道人情。

          BlogJava 聯系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks

          上篇文章我寫的是關于如何用JavaMail來實現對郵件的查找,在這篇文章中我們繼續探討如何用JavaMail來實現郵件查找,這篇文章的重點是如何通過擴展JavaMail來實現自定義的郵件查找器

          下面我將通過兩個例子來說明如果擴展JavaMail的javax.mail.search中的類:

          例子一:
          通過擴展SearchTerm來實現自己的根據附件來查找郵件的JAttachTerm,下面是本程序的
          源代碼:
          //|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


          /*
           * Created on 2005-1-30
           *
           * TODO To change the template for this generated file go to
           * Window - Preferences - Java - Code Style - Code Templates
           */
          package webmail.mail.search;

          import javax.mail.Message;
          import javax.mail.internet.MimeMessage;
          import javax.mail.search.StringTerm;

          import webmail.mail.MimeMessageParser;

          /**
           * <p>Title: JSubjectTerm.java</p>
           * <p>Description:</p>
           * <p>Copyright: Copyright (c) 2004-2008</p>
           * <p>Company: coffee-mail of BeiJing</p>
           *
           * @author wang weiping
           * @version 1.0 2005-1-30
           */
          public class JSubjectTerm extends StringTerm{
               
                public JSubjectTerm(String pattern){
                      super(pattern);
                }

                /* (non-Javadoc)
                 * 核心: 主要的就是擴展SearchTerm的match(Message message) 方法
                 * @see javax.mail.search.SearchTerm#match(javax.mail.Message)
                 */
                public boolean match(Message message){
                      String subject = "";
                  //以下使用自定義的類MimeMessageParser類來實現對MimeMessage的解析
                  //來獲得特定郵件的主題
                      MimeMessageParser mmp = MimeMessageParser.getMessageParser((MimeMessage)message);
                      try{
                        //調用MimeMessageParser類的getSubject()方法來獲得郵件的主題
                            subject = mmp.getSubject();   
                      }catch(Exception ex){
                            //ignore exception
                            return false;
                      }
                      if(subject == null) return false;
                      return super.match(subject);
                }
               
                //注意一定要覆寫StringTerm的equals(Object object)方法,具體理由請參看Effective Java
                public boolean equals(Object obj) {
                      if (! (obj instanceof JSubjectTerm)) {
                            return false;
                      }
                      return super.equals(obj);
                }
          }


          看完之后是不是感覺很簡單啊!最主要的就是看你具體需要的是擴展SearchTerm還是它的
          子類比如我自定義的JAttachTerm就是擴展JavaMail的SearchTerm的。

          注:在我以前發表的文章中有關于郵件解析的代碼,雖然有一些問題,但作為參考我覺得
          已經可以了,有很多熱心的朋友問我可不可以提供MimeMessageParser.java的第二版的源
          代碼,這個我可能暫時不會提供,不過我會盡快把編譯過的類文件提供給大家,供大家來
          測試使用。

          順便說一聲,完全由我自己編寫的基于java的企業級的郵件系統很快就要和大家見面了,希望大家多多支持。

          posted on 2007-05-06 12:11 張金鵬 閱讀(999) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 五寨县| 乐安县| 湖北省| 维西| 嘉鱼县| 宜都市| 杭锦后旗| 徐州市| 阳东县| 天全县| 武邑县| 桐乡市| 莆田市| 梓潼县| 陕西省| 通州区| 探索| 图木舒克市| 淮南市| 会昌县| 天镇县| 巴塘县| 新兴县| 珲春市| 奈曼旗| 高陵县| 利津县| 威宁| 宁津县| 密山市| 县级市| 武夷山市| 台东县| 泗洪县| 黄龙县| 青冈县| 永新县| 昭平县| 凤庆县| 芒康县| 靖远县|