通过Web服务调用使用EWS过滤任务状态

时间:2013-10-28 12:43:16

标签: web-services soap outlook exchangewebservices

我正在尝试查询Exchange Web服务以查找不完整的任务,但与this question不同,我使用普通的Web服务调用(如通过SOAP-UI)而不是通过C#。

我想知道我是否可以使用简单的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>dummy@address.com</t:EmailAddress>
               </t:Mailbox>
            </t:DistinguishedFolderId>
         </ParentFolderIds>
      </FindItem>
   </soapenv:Body>
</soapenv:Envelope>

我正在谈论Outlook 2007。

1 个答案:

答案 0 :(得分:1)

通常,这里的最佳做法是进行客户端过滤。如果您对不完整的任务进行不频繁的临时请求,那么我建议您使用搜索过滤器。如果您发现必须经常请求更新任务,则搜索文件夹可能是合适的。如果要实时创建应用程序,可以在tasks文件夹上订阅事件通知。

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