Microsoft Exchange Java API 根据文件夹中的日期和编号获取邮件

Microsoft Exchange Java API get messages based on date and number in folder

我有这个程序有这个方法。

public List<Message> getMessages(int start, int end, Date earliestDate) throws MessagingException {

使用 Java EWS api 我如何使用这些变量从文件夹中获取消息。例如,如果我想在收件箱中收到第 50-70 条消息,或者我想收到从特定日期开始的第 10-20 条消息。日期可以为空,这并不重要。

我怀疑这是最有效的方法,但是哦,好吧。

public List<Message> getMessages(int start, int end, Date earliestDate) {
        if (start < 1 || end < 1 || end < start) {

            throw new MessagingException(String.format(Locale.US, "Invalid message set %d %d",
                    start, end));
        }
        int length = end - start;
        ItemView view = new ItemView(length);
        FindItemsResults<Item> findresults = null;
        try {
            if (earliestDate == null) {
                findresults = mService.findItems(mFolder.getId(), view);
            }
            else{
                SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, earliestDate);
                findresults = mService.findItems(mFolder.getId(), filter,view);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        List<Message> messages = new ArrayList<Message>();
        int i = 0;
        for (Item item : findresults) {
            ItemId id = null;
            EmailMessage message = null;

            try {
                id = item.getId();
                message = new EmailMessage(mService);
                message.bind(mService, id);
            } catch (ServiceLocalException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }

            messages.add(message);

    }

        return messages;
    }