我目前有一个巨大的问题,需要我的帮助。
目前,我无法一次加载所有电子邮件。
我在这里找到了以下功能:

Message[] messages = emailFolder.getMessages(start, end);


我知道我可以使用SortTerm对电子邮件进行排序:

SortTerm sortTerm[] = new SortTerm[] { SortTerm.REVERSE, SortTerm.DATE };
Message messages = ((IMAPFolder) emailFolder).getSortedMessages(sortTerm);


但比起我,我将再次加载所有电子邮件。
我如何一起使用:
-搜索
-排序
-并使用getMessages(start,end)

示例代码将非常有帮助。

非常感谢

最佳答案

需要明确的是,使用IMAP时,调用getMessages时不会“加载”任何消息。所发生的一切就是JavaMail客户端创建了一个Message对象,该对象引用服务器上的消息,并进行了设置,以便Message对象将在您请求时为服务器上的消息获取数据。

您可以创建一个SearchTerm,它使用一对MessageNumberTerms将消息限制在一定范围内,就像使用“开始,结束”一样。但是,您应该问自己:是否真的要先按邮件号对邮箱中的所有邮件进行排序(实际上是按接收日期进行向前排序),然后再按发送日期进行反向排序。您到底想完成什么?

10-08 06:54