2013-10-28 166 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