細(xì)心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書(shū),跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買(mǎi)賣(mài),九十道人情。

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks

          上篇文章我寫(xiě)的是關(guān)于如何用JavaMail來(lái)實(shí)現(xiàn)對(duì)郵件的查找,在這篇文章中我們繼續(xù)探討如何用JavaMail來(lái)實(shí)現(xiàn)郵件查找,這篇文章的重點(diǎn)是如何通過(guò)擴(kuò)展JavaMail來(lái)實(shí)現(xiàn)自定義的郵件查找器

          下面我將通過(guò)兩個(gè)例子來(lái)說(shuō)明如果擴(kuò)展JavaMail的javax.mail.search中的類(lèi):

          例子一:
          通過(guò)擴(kuò)展SearchTerm來(lái)實(shí)現(xiàn)自己的根據(jù)附件來(lái)查找郵件的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)
                 * 核心: 主要的就是擴(kuò)展SearchTerm的match(Message message) 方法
                 * @see javax.mail.search.SearchTerm#match(javax.mail.Message)
                 */
                public boolean match(Message message){
                      String subject = "";
                  //以下使用自定義的類(lèi)MimeMessageParser類(lèi)來(lái)實(shí)現(xiàn)對(duì)MimeMessage的解析
                  //來(lái)獲得特定郵件的主題
                      MimeMessageParser mmp = MimeMessageParser.getMessageParser((MimeMessage)message);
                      try{
                        //調(diào)用MimeMessageParser類(lèi)的getSubject()方法來(lái)獲得郵件的主題
                            subject = mmp.getSubject();   
                      }catch(Exception ex){
                            //ignore exception
                            return false;
                      }
                      if(subject == null) return false;
                      return super.match(subject);
                }
               
                //注意一定要覆寫(xiě)StringTerm的equals(Object object)方法,具體理由請(qǐng)參看Effective Java
                public boolean equals(Object obj) {
                      if (! (obj instanceof JSubjectTerm)) {
                            return false;
                      }
                      return super.equals(obj);
                }
          }


          看完之后是不是感覺(jué)很簡(jiǎn)單?。∽钪饕木褪强茨憔唧w需要的是擴(kuò)展SearchTerm還是它的
          子類(lèi)比如我自定義的JAttachTerm就是擴(kuò)展JavaMail的SearchTerm的。

          注:在我以前發(fā)表的文章中有關(guān)于郵件解析的代碼,雖然有一些問(wèn)題,但作為參考我覺(jué)得
          已經(jīng)可以了,有很多熱心的朋友問(wèn)我可不可以提供MimeMessageParser.java的第二版的源
          代碼,這個(gè)我可能暫時(shí)不會(huì)提供,不過(guò)我會(huì)盡快把編譯過(guò)的類(lèi)文件提供給大家,供大家來(lái)
          測(cè)試使用。

          順便說(shuō)一聲,完全由我自己編寫(xiě)的基于java的企業(yè)級(jí)的郵件系統(tǒng)很快就要和大家見(jiàn)面了,希望大家多多支持。

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 台湾省| 丁青县| 舞阳县| 托克逊县| 阆中市| 商丘市| 吴忠市| 龙胜| 丰城市| 亳州市| 澄江县| 溧水县| 方正县| 浦北县| 株洲县| 保靖县| 长泰县| 邯郸市| 台南县| 原平市| 中卫市| 项城市| 苏尼特右旗| 望奎县| 黄骅市| 湖南省| 红桥区| 衡阳县| 青海省| 郯城县| 临夏县| 雅安市| 江山市| 淮阳县| 襄樊市| 华容县| 田林县| 洛宁县| 河池市| 安丘市| 通榆县|