Поделиться через


Операция FindFolder

Операция FindFolder использует веб-службы Exchange для поиска вложенных папок определенной папки и возвращает набор свойств, описывающих набор вложенных папок.

FindFolder возвращает только первые 512 байт любого свойства, доступного для потоковой передачи. Для Юникода он возвращает первые 255 символов, используя строку Юникода, завершаемую null.

Запросы глубокого обхода не могут выполняться в общедоступных папках.

Ограничения разрешены и должны использовать только свойства папки, а не свойства элемента. Функция сортировки недоступна для ответов FindFolder . Сгруппированные запросы недоступны для запросов FindFolder .

[! ПРИМЕЧАНИЕ} Операция FindFolder также используется для поиска управляемых папок.

Заголовки SOAP

Операция FindFolder может использовать заголовки SOAP, перечисленные и описанные в следующей таблице.

Header Элемент Описание
Олицетворение ExchangeImpersonation Определяет пользователя, которого олицетворяет клиентское приложение.
MailboxCulture MailboxCulture Определяет язык и региональные параметры RFC3066, используемые для доступа к почтовому ящику.
RequestVersion RequestServerVersion Определяет версию схемы для запроса операции.
ServerVersion ServerVersionInfo Определяет версию сервера, который ответил на запрос.
TimeZoneContext TimeZoneContext Определяет часовой пояс, который будет использоваться для всех ответов с сервера.

Пример запроса FindFolder

В следующем примере запроса FindFolder показано, как сформировать запрос на поиск всех папок, расположенных в папке "Входящие".

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <FindFolder Traversal="Shallow" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <FolderShape>
        <t:BaseShape>Default</t:BaseShape>
      </FolderShape>
      <ParentFolderIds>
        <t:DistinguishedFolderId Id="inbox"/>
      </ParentFolderIds>
    </FindFolder>
  </soap:Body>
</soap:Envelope>

Используя значение по умолчанию для BaseShape, ответ возвращает имя папки, идентификатор папки, количество вложенных папок, количество дочерних папок, найденных в папке, и количество непрочитанных элементов.

Элементы запроса FindFolder

Этот запрос FindFolder включает следующие элементы:

Дополнительные элементы запроса FindFolder см. в схеме.

Пример ответа FindFolder

В следующем примере текста протокола SOAP показан успешный ответ на запрос FindFolder . Ответ содержит элементы, возвращаемые при использовании значения По умолчанию для BaseShape .

Примечание.

Идентификатор папки и ключ изменения сокращены для сохранения удобочитаемости.

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="652" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindFolderResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                        xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                        xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:FindFolderResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:RootFolder TotalItemsInView="1" IncludesLastItemInRange="true">
            <t:Folders>
              <t:Folder>
                <t:FolderId Id="AQAnAH" ChangeKey="AQAAABY" />
                <t:DisplayName>TestFolder</t:DisplayName>
                <t:TotalCount>0</t:TotalCount>
                <t:ChildFolderCount>0</t:ChildFolderCount>
                <t:UnreadCount>0</t:UnreadCount>
              </t:Folder>
            </t:Folders>
          </m:RootFolder>
        </m:FindFolderResponseMessage>
      </m:ResponseMessages>
    </FindFolderResponse>
  </soap:Body>
</soap:Envelope>

Элементы ответа FindFolder

Свойства, возвращаемые в ответе, определяются BaseShape и Дополнительными свойствами , если они используются. Успешный ответ FindFolder включает следующие элементы:

Ответы FindFolder на запрос с фигурой ответа AllProperties не возвращают элементы TotalCount и UnreadCount для поиска в общедоступных папках.

Пример ответа на ошибку FindFolder

В следующем примере текста SOAP показан ответ на ошибку, который возникает при поиске папки, которая определяется неправильным идентификатором папки.

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="652" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindFolderResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                          xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                          xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:FindFolderResponseMessage ResponseClass="Error">
          <m:MessageText>Id is malformed.</m:MessageText>
          <m:ResponseCode>ErrorInvalidIdMalformed</m:ResponseCode>
          <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
        </m:FindFolderResponseMessage>
      </m:ResponseMessages>
    </FindFolderResponse>
  </soap:Body>
</soap:Envelope>

Элементы ответа на ошибку FindFolder

Ответ на ошибку FindFolder включает следующие элементы:

Дополнительные сведения

  • Элемент folder DisplayName (string) всегда включается в фигуру по умолчанию.
  • Элемент UnreadCount включен в папки "Задачи" и "Заметки".
  • Используйте значение PropertyTag 0x672D с типом свойства Integer , чтобы определить управляемую папку с помощью элемента ExtendedFieldURI .

См. также

Поиск папок