基于JavaMail的SearchTerm

本文探讨如何利用JavaMail扩展javax.mail.search类,创建自定义的邮件搜索条件,例如根据附件查找邮件。通过两个示例展示了如何实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

上篇文章我写的是关于如何用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的第二版的源
代码,这个我可能暂时不会提供,不过我会尽快把编译过的类文件提供给大家,供大家来
测试使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值