2013-10-28 49 views
0

我试图查询Exchange Web服务的不完整任务,但与this question不同,我使用普通的web服务调用(如通过SOAP-UI)而不是通过C#。通过Web服务调用使用EWS过滤任务状态

我想知道我是否可以使用简单的web服务请求筛选相同的东西。

我当前的请求获取所有Outlook任务,并且可以筛选结果,但最好让Exchange执行筛选。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages"> 
    <soapenv:Body> 
     <FindItem Traversal="Shallow" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> 
     <ItemShape> 
      <t:BaseShape>Default</t:BaseShape> 
     </ItemShape> 
     <ParentFolderIds> 
      <t:DistinguishedFolderId Id="tasks"> 
       <t:Mailbox> 
        <t:EmailAddress>[email protected]</t:EmailAddress> 
       </t:Mailbox> 
      </t:DistinguishedFolderId> 
     </ParentFolderIds> 
     </FindItem> 
    </soapenv:Body> 
</soapenv:Envelope> 

我说的就是Outlook 2007中

+1

你不能用SearchFolders做些什么吗?见例如Sterling书籍“InsideMicrosoft®Exchange Server 2007 Web服务”的第15章。如果您使用原始EWS SOAP,这是一本必备的书。 –

+0

谢谢您的评论,我会研究它!因为我是客户端的开发人员,所以诚实地在服务器端做一些事情不会发生在我身上。 – ljgw

回答

1

一般来说,这里最好的做法是,你做的客户端筛选。如果您针对不完整任务提出罕见的临时请求,那么我建议您使用搜索过滤器。如果您发现必须经常请求更新的任务,那么搜索文件夹可能是合适的。如果您希望实时制作应用程序,则可以在任务文件夹中订阅事件通知。

顺便说一句,您的应用程序访问许多邮箱或只是一个用户的邮箱?您上面的示例表明这是一个委托访问方案。

+0

谢谢你的回答。回答你的问题:我正在构建一个portlet /小部件,它将检索当前登录用户的打开(outlook和其他)任务(针对多个用户的潜在频繁查询)。目前我们使用委托评估方案,但未来我们希望使用SSO解决方案,可能使用ADFS/SAML 2.0。 – ljgw