PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.setRequestedBodyType(BodyType.Text);
ItemView view = new ItemView(10);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.DateTimeReceived));
SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, searchFilter, view);
service.loadPropertiesForItems(findResults, itempropertyset);
System.out.println("Total number of items found: " + findResults.getTotalCount());
for (Item item : findResults) {
System.out.println(item.getSubject());
System.out.println(item.getBody());
}
目前在我连接到我们的交换机的应用程序中,我的要求是阅读未读邮件并附上文件。
但是搜索过滤器不起作用,我可以将Operator
更改为AND,我可以将SortDirection
从升序更改为降序但不会有任何区别。我的搜索过滤器目前设置为未读,但它会带回随机电子邮件。 ItemView设置为10,但带回了157封电子邮件。
来自println:Total number of items found: 157
有关我做错的任何建议吗? 亲切的问候
答案 0 :(得分:0)
通过从searchFilterCollection
更改为searchFilter
并添加视图解决了此问题,这也解决了日期排序问题。
FindItemsResults<Item> findResults
= service.findItems(WellKnownFolderName.Inbox, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false), view);