Я пытаюсь реализовать клиент Java, который будет использовать протокол EWS для связи с почтовым сервером. Поэтому я решил использовать это EWS API.EWS: Неподдерживаемое ограничение в исключении запроса FindItem
Теперь я пытаюсь получить элементы из почтового ящика, он работает хорошо, но когда я добавил SearchFilter, исключение произошло:
microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: Unsupported restriction in FindItem request
at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278)
at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267)
at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:985)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:1028)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:1088)
at main.Main.findItems(Main.java:66)
at main.Main.<init>(Main.java:49)
at main.Main.main(Main.java:84)
Это код, который я использовал, это код, который я скопировал с сайта Github:
public void findItems() throws Exception {
ItemView view = new ItemView(10);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.DateTimeReceived));
SearchFilter filter1 = new SearchFilter.ContainsSubstring(ItemSchema.Subject, "EWS");
FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, filter1, view);
//MOOOOOOST IMPORTANT: load items properties, before
service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);
System.out.println("Total number of items found: " + findResults.getTotalCount());
for (Item item : findResults) {
System.out.println(item.getSubject());
System.out.println(item.getBody());
// Do something with the item.
}
}
Спасибо