细心!用心!耐心!

吾非文人,乃市井一俗人也,读百卷书,跨江河千里,故申城一游; 一两滴辛酸,三四年学业,五六点粗墨,七八笔买卖,九十道人情。

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 张金鹏 阅读(975) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: