JSP虚拟主机,jsp空间,java空间,java虚拟空间JSP虚拟主机,jsp空间,java空间,java虚拟空间

基于JavaMail的SearchTerm【自定义的邮件查找器】



作者:    文章来源:
发布日期:2007年04月17日
上篇文章我写的是关于如何用JavaMail来实现对邮件的查找,在这篇文章中我们继续探讨如何用JavaMail来实现邮件查找,这篇文章的重点是如何通过扩展JavaMail来实现自定义的邮件查找器

下面我将通过两个例子来说明如果扩展JavaMail的javax.mail.search中的类: 

例子一:
通过扩展SearchTerm来实现自己的根据附件来查找邮件的JAttachTerm,下面是本程序的
源代码:
//|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  1. /*
  2.  * Created on 2005-1-30
  3.  *
  4.  * TODO To change the template for this generated file go to
  5.  * Window - Preferences - Java - Code Style - Code Templates
  6.  */
  7. package webmail.mail.search;
  8. import javax.mail.Message;
  9. import javax.mail.internet.MimeMessage;
  10. import javax.mail.search.StringTerm;
  11. import webmail.mail.MimeMessageParser;
  12. /**
  13.  * <p>Title: JSubjectTerm.java</p>
  14.  * <p>Description:</p>
  15.  * <p>Copyright: Copyright (c) 2004-2008</p>
  16.  * <p>Company: coffee-mail of BeiJing</p>
  17.  * 
  18.  * @author wang weiping
  19.  * @version 1.0 2005-1-30
  20.  */
  21. public class JSubjectTerm extends StringTerm{
  22.       
  23.       public JSubjectTerm(String pattern){
  24.             super(pattern);
  25.       }
  26.       /* (non-Javadoc)
  27.        * 核心: 主要的就是扩展SearchTerm的match(Message message) 方法
  28.        * @see javax.mail.search.SearchTerm#match(javax.mail.Message)
  29.        */
  30.       public boolean match(Message message){
  31.             String subject = "";
  32.         //以下使用自定义的类MimeMessageParser类来实现对MimeMessage的解析
  33.         //来获得特定邮件的主题
  34.             MimeMessageParser mmp = MimeMessageParser.getMessageParser((MimeMessage)message);
  35.             try{
  36.               //调用MimeMessageParser类的getSubject()方法来获得邮件的主题
  37.                   subject = mmp.getSubject();    
  38.             }catch(Exception ex){
  39.                   //ignore exception
  40.                   return false;
  41.             }
  42.             if(subject == nullreturn false;
  43.             return super.match(subject);
  44.       }
  45.       
  46.       //注意一定要覆写StringTerm的equals(Object object)方法,具体理由请参看Effective Java
  47.       public boolean equals(Object obj) {
  48.             if (! (obj instanceof JSubjectTerm)) {
  49.                   return false;
  50.             }
  51.             return super.equals(obj);
  52.       }
  53. }


看完之后是不是感觉很简单啊!最主要的就是看你具体需要的是扩展SearchTerm还是它的
子类比如我自定义的JAttachTerm就是扩展JavaMail的SearchTerm的。

注:在我以前发表的文章中有关于邮件解析的代码,虽然有一些问题,但作为参考我觉得
已经可以了,有很多热心的朋友问我可不可以提供MimeMessageParser.java的第二版的源
代码,这个我可能暂时不会提供,不过我会尽快把编译过的类文件提供给大家,供大家来
测试使用。

顺便说一声,完全由我自己编写的基于java的企业级的邮件系统很快就要和大家见面了,希望大家多多支持。
webmail涉及到的技术:java,linux(unix),mailserver
欢迎大家跟我联系,我的MSN为: coffeecat_1124@hotmail.com

下一篇文章的题目可能是关于邮件排序的实现,也可能是Martin Fowler的大作PEAA(企业
应用架构模式)的几篇读书笔记,希望大家共同营造一个有更多原创的精品文章的JR社区。
Copyright © 2002-2012 JSPCN.net. All rights reserved.
JSP中文网    备案号:粤ICP备09171188号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号