上篇文章我寫(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)面了,希望大家多多支持。
上篇文章我寫(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)面了,希望大家多多支持。