0
点赞
收藏
分享

微信扫一扫

java mail实现设置过滤条件读取邮箱邮件内容

青鸾惊鸿 2022-01-31 阅读 139

java mail实现设置过滤条件读取邮箱邮件内容,在java实现读取163邮箱,qq邮箱的邮件内容基础代码上进行修改。

1.主要类说明:

java mail使用搜索过滤功能,必须用到 java.mail.search 包中的 SearchTerm 抽象类。


JavaMail在javax.mail.search包中定义了一个用于创建搜索条件的SearchTerm类,应用程序创建SearchTerm类的实例对象后,就可以调用Folder.Search(SearchTerm st)方法搜索邮件夹中符合搜索条件的所有邮件。


SearchTerm是一个抽象类,主要常用的具体子类有:

1.用于创建逻辑组合关系的类
OR条件(OrTerm类)
NOT条件(NotTerm类)
Comparison条件(ComparisonTerm类)


2.用于创建具体搜索条件的类
DATE条件(SentDateTerm、ReceivedDateTerm类)

CONTENT条件(BodyTerm类)

HEADER条件(FromStringTerm、RecipientStringTerm、SubjectTerm类等)

DateTerm 类、BodyTerm 类、HeaderTerm 类,

2.具体使用方式:

1、搜索发件人为"xx",而且邮件正文包含“yy“的所有邮件

SearchTerm andTerm = new AndTerm( new FromStringTerm("xx"), new BodyTerm("yy"));
Message[] messages = folder.search(andTerm);

2、搜索发件人为“xx“或主题包含“yy“的所有邮件

SearchTerm orTerm = new OrTerm( new FromStringTerm("xx"), new SubjectTerm("yy"));
Message[] messages = folder.search(orTerm);

注,有些邮箱使用imaps协议是查询不了主题邮件的,可以改为使用pop3s协议。但发现pop3s协议返回邮件时间比较久,在邮件数量不多情况下可以考虑获取所有邮件后,再进行代码逻辑过滤。

3.搜索大于等于这时间的邮件

SearchTerm  sentDateTerm = new SentDateTerm(6,new Date()); //6 代表大于等于这时间之后
Message[] messages = folder.search(sentDateTerm);
举报

相关推荐

0 条评论