使用Javamail从邮件列表中查找特定的未读邮件

时间:2011-08-01 14:46:08

标签: java javamail

我的方法是 -

  1. 获取总邮件列表 -

    List<Message> totalMessageList = Arrays
                .asList(folder.getMessages());
    
  2. 创建一个仅包含未读邮件的列表。 (我不得不这样做因为我找不到任何直接的API来获取新邮件列表。有一个问题有助于查找邮件是否未读过here

    List<Message> unreadMessageList = new ArrayList<Message>();
    

    为简洁起见,我没有公布从总邮件列表构建未读邮件列表的整个逻辑。

  3. 迭代未读邮件列表&gt;检查邮件是否有所需主题,然后阅读邮件内容&gt;如果没有找到此类邮件,则抛出IllegalStateExcepton

  4. 现在我的问题是 - 我可以改进这种方法吗?

1 个答案:

答案 0 :(得分:1)

你能用吗

Folder.search(SearchTerm): Message[]

http://javamail.kenai.com/nonav/javadocs/javax/mail/Folder.html#search%28javax.mail.search.SearchTerm%29

使用相关的SearchTerm,例如FlagTerm为未读标志

http://javamail.kenai.com/nonav/javadocs/javax/mail/search/FlagTerm.html

在Google上快速搜索找到了这个

http://www.java2s.com/Code/Java/Email/Searchthegivenfolderformessagesmatchingthegivencriteria.htm

这可能有用,但我还没有尝试过