可用的用户配置名称名称 GetUser配置可区分文件夹 ID "日历"?



Exchange Web服务有一个方法GetUserConfiguration,该方法需要UserConfigurationName来确定为文件夹检索哪些设置。

有哪些可用的UserConfigurationNames(特别是DistinguishedFolderId"calendar",但当然可以使用更广泛的列表)。

在遥远的过去,我设法找到了4个,但我不知道我从哪里得到的,也不知道这是否是整个列表。它可能也取决于Exchange版本(这4个版本在2010年下工作)。

以下是我在SOAP调用示例中提出的四个:

<soap:Body>
  <mes:GetUserConfiguration>
    <mes:UserConfigurationName Name="CategoryList">          // Alternative 1
    <mes:UserConfigurationName Name="Calendar">              // Alternative 2
    <mes:UserConfigurationName Name="WorkHours">             // Alternative 3
    <mes:UserConfigurationName Name="AvailabilityOptions">   // Alternative 4 
      <typ:DistinguishedFolderId Id="calendar"/>
    </mes:UserConfigurationName>
    <mes:UserConfigurationProperties>All</mes:UserConfigurationProperties>
  </mes:GetUserConfiguration>
</soap:Body>

您需要使用Associated遍历选项(在2010+中可用)执行FindItem调用。这将查找与默认日历文件夹关联的所有用户配置对象(也称为文件夹关联项目)。您想要请求ItemClass,因为我相信它包含EWS用来访问用户配置对象的配置名称。根据创建用户配置对象的内容,您可能需要从ItemClass中解析出用户配置名称。

<?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"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013" />
    <t:MailboxCulture>en-US</t:MailboxCulture>
  </soap:Header>
  <soap:Body>
    <m:FindItem Traversal="Associated">
      <m:ItemShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="item:ItemClass"/>
        </t:AdditionalProperties>
      </m:ItemShape>
      <m:IndexedPageItemView BasePoint="Beginning" MaxEntriesReturned="100" Offset="0"/>
      <m:ParentFolderIds>
        <t:DistinguishedFolderId Id="calendar"/>
      </m:ParentFolderIds>
    </m:FindItem>
  </soap:Body>
</soap:Envelope>

您可以在以下响应中看到您所知道的用户配置对象(即CategoryList、WorkHours等)和ItemClass之间的关系:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15" />
  </s:Header>
  <s:Body>
    <m:FindItemResponse>
      <m:ResponseMessages>
        <m:FindItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:RootFolder IndexedPagingOffset="9" TotalItemsInView="9" IncludesLastItemInRange="true">
            <t:Items>
              <t:Message>
                <t:ItemId Id="AEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Configuration.HomeTimeZone</t:ItemClass>
              </t:Message>
              <t:Message>
                <t:ItemId Id="Az=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Configuration.AvailabilityOptions</t:ItemClass>
              </t:Message>
              <t:Message>
                <t:ItemId Id="AMz=" ChangeKey="CQ"/>
                <t:ItemClass>IPC.MS.Outlook.AgingProperties</t:ItemClass>
              </t:Message>
              <t:CalendarItem>
                <t:ItemId Id="ADEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Appointment</t:ItemClass>
              </t:CalendarItem>
              <t:Message>
                <t:ItemId Id="ADEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Configuration.CategoryList</t:ItemClass>
              </t:Message>
              <t:Message>
                <t:ItemId Id="ADEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Configuration.WorkHours</t:ItemClass>
              </t:Message>
              <t:Message>
                <t:ItemId Id="ADEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Configuration.Calendar</t:ItemClass>
              </t:Message>
              <t:Message>
                <t:ItemId Id="ADEz=" ChangeKey="CQ"/>
                <t:ItemClass>IPM.Microsoft.FolderDesign.NamedView</t:ItemClass>
              </t:Message>
            </t:Items>
          </m:RootFolder>
        </m:FindItemResponseMessage>
      </m:ResponseMessages>
    </m:FindItemResponse>
  </s:Body>
</s:Envelope>

最新更新