2017-09-06 1 views
0
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()); 
} 

Actuellement dans l'application je me connecte à notre échange, l'exigence que j'ai est de lire les mails non lus et obtenir un fichier joint.EWS Java Api filtre de recherche ignoré

Cependant les filtres de recherche ne fonctionnent pas, je peux changer le Operator à ET de OU, je peux changer le SortDirection de croissant à décroissant mais cela ne fait aucune différence. Mon filtre de recherche est actuellement non lu mais il renvoie des emails aléatoires. Le ItemView est fixé à 10 mais ramenant 157 emails.

du println: Total number of items found: 157

Toutes les suggestions sur ce que je fais mal? Kind Regards

Répondre

0

Résolu le problème en passant d'un searchFilterCollection à un searchFilter et en ajoutant la vue, cela a également résolu le problème de tri de la date.

FindItemsResults<Item> findResults 
         = service.findItems(WellKnownFolderName.Inbox, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false), view);