|
|
| 基于JavaMail的SearchTerm【自定义的邮件查找器】 |
作者:
文章来源:
访问次数:5次
加入时间:2007年04月17日
|
|
上篇文章我写的是关于如何用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的企业级的邮件系统很快就要和大家见面了,希望大家多多支持。 webmail涉及到的技术:java,linux(unix),mailserver 欢迎大家跟我联系,我的MSN为: coffeecat_1124@hotmail.com
下一篇文章的题目可能是关于邮件排序的实现,也可能是Martin Fowler的大作PEAA(企业 应用架构模式)的几篇读书笔记,希望大家共同营造一个有更多原创的精品文章的JR社区。
|
|
|