使用SOAP

时间:2016-02-18 18:00:59

标签: exchangewebservices

是否可以通过PR_FOLDER_PATH进行SOAP搜索?对路径中带有“收件箱”的任何文件夹进行简单搜索都是空的:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindFolder Traversal="Deep" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <FolderShape>
        <t:BaseShape>Default</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="folder:FolderClass" />
          <t:ExtendedFieldURI PropertyTag="4340" PropertyType="Boolean" />
          <t:ExtendedFieldURI PropertyTag="26293" PropertyType="String" />
        </t:AdditionalProperties>
      </FolderShape>
      <Restriction>
        <t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
          <t:ExtendedFieldURI PropertyTag="26293" PropertyType="String" />
          <t:Constant Value="Inbox" />
        </t:Contains>
      </Restriction>
      <ParentFolderIds>
        <t:DistinguishedFolderId Id="msgfolderroot" />
      </ParentFolderIds>
    </FindFolder>
  </soap:Body>
</soap:Envelope>

确实,PR_FOLDER_PATH似乎有点神秘。我知道它的属性标签是26293,我可以在其他搜索结果中看到文件夹路径值输出。但我似乎无法找到一种方法来获取EWS编辑器中列出的此属性的值,更不用说让它适用于搜索过滤器。什么是PID名称等价? PR_FOLDER_PATH甚至没有在MS-OXPROPS中列出!

1 个答案:

答案 0 :(得分:1)

我很确定它是一个计算属性,并且仅在FindFolder操作中的EWS中有效,因为返回此操作的基础Exchange操作(例如,它在2013年的GetFolder操作中无效)。

实现您想要的简单方法就是在收件箱中创建FindFolder,它将为您提供Path中所有带Inbox的文件夹。对于用户创建的文件夹,您需要找到用户创建的文件夹的ID,但它的工作方式类似。

干杯 格伦