Операция GetFolder
Операция GetFolder получает папки из хранилища Exchange.
Пример запроса GetFolder
Описание
В следующем примере запроса GetFolder показано, как получить идентификатор папки, отображаемое имя, количество элементов в этой папке, количество дочерних папок и количество непрочитанных элементов в папке.
Код
<?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>
<GetFolder xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<FolderShape>
<t:BaseShape>Default</t:BaseShape>
</FolderShape>
<FolderIds>
<t:DistinguishedFolderId Id="inbox"/>
</FolderIds>
</GetFolder>
</soap:Body>
</soap:Envelope>
Элементы запроса
Этот запрос GetFolder включает следующие элементы:
Дополнительные элементы, которые можно использовать для формирования запроса GetFolder , см. в схеме.
Примечание.
Схема, описывающая этот элемент, находится в виртуальном каталоге IIS, в котором размещены веб-службы Exchange.
Пример ответа GetFolder
Описание
В следующем примере текста протокола SOAP показан успешный ответ на запрос GetFolder .
Примечание.
Идентификатор папки и ключ изменения сокращены для сохранения удобочитаемости.
Код
<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="628" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetFolderResponse 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:GetFolderResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Folders>
<t:Folder>
<t:FolderId Id="AQApA=" ChangeKey="AQAAAB" />
<t:DisplayName>Inbox</t:DisplayName>
<t:TotalCount>2</t:TotalCount>
<t:ChildFolderCount>0</t:ChildFolderCount>
<t:UnreadCount>2</t:UnreadCount>
</t:Folder>
</m:Folders>
</m:GetFolderResponseMessage>
</m:ResponseMessages>
</GetFolderResponse>
</soap:Body>
</soap:Envelope>
Элементы ответа
Этот ответ GetFolder включает следующие элементы:
Пример ответа getFolder Error
Описание
В следующем примере текста SOAP показан ответ об ошибке, вызванный неправильным идентификатором FolderId в запросе.
Код
<?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="628" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetFolderResponse 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:GetFolderResponseMessage ResponseClass="Error">
<m:MessageText>Id is malformed.</m:MessageText>
<m:ResponseCode>ErrorInvalidIdMalformed</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Folders />
</m:GetFolderResponseMessage>
</m:ResponseMessages>
</GetFolderResponse>
</soap:Body>
</soap:Envelope>
Элементы ответа
Этот ответ на ошибку GetFolder включает в себя следующие элементы:
Различия версий
Для приложений, предназначенных Exchange Online, Exchange Online в составе Office 365 или локальной версии Exchange, начиная с Exchange 2013, разрешения папки не возвращаются, если элемент BaseShape имеет значение AllProperties в запросе операции GetFolder. Чтобы получить разрешения для папки, добавьте элемент PermissionSet (PermissionSetType) в элемент AdditionalProperties в запросе GetFolder .