2016-07-15 96 views
0

我试图实现将使用EWS协议与邮件服务器通信的Java客户端。所以我决定使用这个EWS APIEWS: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. 
    } 
} 

感谢

回答

1

我已经找到了答案。

这是由电子邮件服务器造成的,该服务器不支持查找项目中的resriction。

相关问题