細心!用心!耐心!

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

          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 張金鵬 閱讀(991) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 肃宁县| 浦城县| 衡南县| 阜宁县| 弥渡县| 哈密市| 平南县| 西和县| 杭锦后旗| 景德镇市| 广饶县| 鄂托克旗| 金昌市| 江永县| 伊金霍洛旗| 双辽市| 旬阳县| 望奎县| 临朐县| 静宁县| 左云县| 开平市| 神木县| 汾阳市| 栖霞市| 定南县| 乌什县| 宜兰市| 彰化市| 车险| 临夏市| 白水县| 佛冈县| 康马县| 合山市| 兴安盟| 比如县| 仁寿县| 库伦旗| 德阳市| 丰镇市|