java.mail的搜索过滤类

来源:互联网 发布:淘宝网男士双肩包 编辑:程序博客网 时间:2024/06/13 10:27

一、查找邮件

在 JavaMail 中查找邮件,不用调用 Folder.getMessages() 方法把邮件夹中的所有邮件都返回,然后再在Message[]中进行搜索。而是可以根据给定的一些条件过滤搜索出我们想要的邮件,之后再对进行获得的邮件进行操作。

要使用搜索过滤功能,必须用到 java.mail.search 包中的 SearchTerm 抽象类。在这个包中,我们可以使用其他具有不同组合关系的子类和具有不同搜索条件的类来进行操作。

1、逻辑组合关系的子类有:AndTerm 类、OrTerm 类、NotTerm 类、ComparisonTerm 类,它们都是 SearchTerm 抽象类的具体子类;

2、具体搜索条件的类有:DateTerm 类、BodyTerm 类、HeaderTerm 类,这几个都是抽象类,具体应用时应该由其对应的子类来实现。

 

范例1

一个简单的例子

Message[] msgs = null;

try {

Folder folder = getFolder(user, folderName);

folder.open(Folder.READ_ONLY);

SearchTerm st = new AndTerm(new FromStringTerm("x@x.x"),new SubjectTerm("xx"));

msgs = folder.search(st);

catch (MessagingException e) {

}

 

ASearchTerm基础抽象类

javax.mail.search.SearchTerm

public abstract class SearchTerm implements Serializable

搜索条件表示为树的搜索方面,形成了一个搜索表达式的解析树。

代表这个类搜索条件。这是一个抽象类的子类实现特定的匹配方法。

搜索条件是序列化的,它允许存储在会话之间的搜索词。

 

AndTerm

This class implements the logical AND operator on individual SearchTerms.

这个类实现了逻辑上AND运算。

NotTerm

This class implements the logical NEGATION operator.

这个类实现了逻辑上NOT运算。

OrTerm

This class implements the logical OR operator on individual SearchTerms.

这个类实现了逻辑上OR运算。

ComparisonTerm

This class models the comparison operator.

这个类实现比较运算。

IntegerComparisonTerm

This class implements comparisons for integers.

这个类实现对整数进行比较。

StringTerm

This class implements the match method for Strings.

这个类实现字符串匹配方法。

AddressTerm

This class implements Message Address comparisons.

这个类实现了邮件地址比较。

BodyTerm

This class implements searches on a message body.

这个类实现了对邮件正文的搜索。

DateTerm

This class implements comparisons for Dates

这个类实现日期的比较

FlagTerm

This class implements comparisons for Message Flags.

这个类实现了邮件标志的比较。

FromStringTerm

This class implements string comparisons for the From Address header.

这个类实现了From地址头的字符串比较。

FromTerm

This class implements comparisons for the From Address header.

这个类实现了From Address的比较。

HeaderTerm

This class implements comparisons for Message headers.

这个类实现了消息头进行比较。

MessageIDTerm

This term models the RFC822 "MessageId" - a message-id for Internet messages that is supposed to be unique per message.

这个类实现了MessageId进行比较。

MessageNumberTerm

This class implements comparisons for Message numbers.

这个类实现了Message numbers进行比较。

ReceivedDateTerm

This class implements comparisons for the Message Received date

这个类实现了接受时间进行比较。

RecipientStringTerm

This class implements string comparisons for the Recipient Address headers.

这个类实现了收件人进行比较。

RecipientTerm

This class implements comparisons for the Recipient Address headers.

这个类实现了收件人Address进行比较。

SentDateTerm

This class implements comparisons for the Message SentDate.

这个类实现了发送时间进行比较。

SizeTerm

This class implements comparisons for Message sizes.

这个类实现了邮件大小进行比较。

SubjectTerm

This class implements comparisons for the message Subject header.

这个类实现消息标题头进行比较。

 

0 0
原创粉丝点击