Операция FindItem
Найдите сведения об операции FindItem EWS.
Операция FindItem выполняет поиск элементов, расположенных в почтовом ящике пользователя. Эта операция предоставляет множество способов фильтрации и форматирования результатов поиска вызывающей.
Использование операции FindItem
Запрос операции FindItem предоставляет множество способов поиска в почтовом ящике и форматирования возвращаемых данных в ответе. В запросе FindItem можно указать следующее:
Является ли поиск неглубоким или обратимо удаленным обходом. Указание этого обязательно. Обратите внимание, что обратимое удаление обхода в сочетании с ограничением поиска приведет к нулю возвращаемых элементов, даже если есть элементы, которые соответствуют условиям поиска.
Форма ответа элементов. Это определяет свойства, возвращаемые в ответе. Указание этого обязательно.
Папки, из которых выполняется поиск. Указание этого обязательно.
Механизм разбиения на страницы и типы представлений для возврата данных представления на страницах. Указание этого параметра является необязательным.
Параметры группирования и сортировки возвращаемых элементов. Указание этого параметра является необязательным.
Ограничения поиска или строки расширенного синтаксиса запросов (AQS) для фильтрации возвращаемых элементов. Дополнительные сведения об использовании AQS для поиска индекса контента см. в разделе QueryString (String). Указание этого параметра является необязательным.
Порядок сортировки элементов, возвращаемых в ответе. Указание этого параметра является необязательным.
Операция FindItem возвращает только первые 512 байт любого потокового свойства. Для Юникода он возвращает первые 255 символов, используя строку Юникода, завершаемую null. Он не возвращает ни один из форматов текста сообщения или списков получателей. FindItem вернет сводку получателя. Для получения сведений об элементе можно использовать операцию GetItem .
FindItem возвращает только элемент Name (EmailAddressType) и не возвращает элемент EmailAddress (NonEmptyStringType) в элементе Mailbox для следующих полей:
Поле From для сообщений
Поле отправителя для сообщений
Поле Организатор для элементов календаря
Примечание.
Операция FindItem может возвращать результаты в элементе CalendarView . Элемент CalendarView возвращает отдельные элементы календаря и все вхождения повторяющихся собраний. Если элемент CalendarView не используется, возвращаются отдельные элементы календаря и повторяющиеся главные элементы календаря. Вхождения должны быть развернуты из повторяющегося образца, если элемент CalendarView не используется.
Операция FindItem может использовать заголовки SOAP, перечисленные в следующей таблице.
Таблица 1. Заголовки SOAP операции FindItem
Header | Элемент | Описание |
---|---|---|
DateTimePrecision |
DateTimePrecision |
Указывает разрешение значений данных и времени в ответах сервера в секундах или в миллисекундах. Это применимо к запросу. |
Олицетворения |
ExchangeImpersonation |
Определяет пользователя, которого олицетворяет клиентское приложение. Это применимо к запросу. |
MailboxCulture |
MailboxCulture |
Определяет язык и региональные параметры RFC3066, используемые для доступа к почтовому ящику. Это применимо к запросу. |
RequestVersion |
RequestServerVersion |
Определяет версию схемы для запроса операции. Это применимо к запросу. |
ServerVersion |
ServerVersionInfo |
Определяет версию сервера, который ответил на запрос. Это применимо к ответу. |
TimeZoneContext |
TimeZoneContext |
Определяет часовой пояс, который будет использоваться для всех ответов с сервера. Это применимо к запросу. |
Пример запроса операции FindItem
В следующем примере запроса FindItem показано, как получить идентификатор элемента, определенный перечислением IdOnly элемента BaseShape для элементов, которые находятся в папке "Удаленные".
<?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>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
Traversal="Shallow">
<ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
</ItemShape>
<ParentFolderIds>
<t:DistinguishedFolderId Id="deleteditems"/>
</ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>
В запросе используются следующие элементы:
Дополнительные параметры для сообщения запроса FindItem см. в иерархии схемы. Начните с элемента FindItem .
Успешный ответ на операцию FindItem
В следующем примере показан успешный ответ на запрос FindItem .
Элементы message представляют сообщения электронной почты и все другие элементы, которые не строго типизированы схемой EWS. Такие элементы, как IPM. Общий доступ и IPM. InfoPath возвращается как элементы Message . Exchange не возвращает базовый элемент Item в ответах.
<?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="595" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<FindItemResponse 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:FindItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:RootFolder TotalItemsInView="10" IncludesLastItemInRange="true">
<t:Items>
<t:Message>
<t:ItemId Id="AS4AUn=" ChangeKey="fsVU4==" />
</t:Message>
<t:Message>
<t:ItemId Id="AS4AUM=" ChangeKey="fsVUA==" />
</t:Message>
</t:Items>
</m:RootFolder>
</m:FindItemResponseMessage>
</m:ResponseMessages>
</FindItemResponse>
</soap:Body>
</soap:Envelope>
В ответе используются следующие элементы:
Дополнительные параметры для ответного сообщения FindItem см. в иерархии схемы. Начните с элемента FindItemResponse .
Ответ на ошибку операции FindItem
В следующем примере показан ответ на ошибку на запрос FindItem .
<?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="595" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<FindItemResponse 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:FindItemResponseMessage ResponseClass="Error">
<m:MessageText>Id is malformed.</m:MessageText>
<m:ResponseCode>ErrorInvalidIdMalformed</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
</m:FindItemResponseMessage>
</m:ResponseMessages>
</FindItemResponse>
</soap:Body>
</soap:Envelope>
В ответе на ошибку используются следующие элементы:
Дополнительные параметры для сообщения об ошибке FindItem см. в иерархии схемы. Начните с элемента FindItemResponse .
Различия версий
Версии Exchange, начиная с основной версии 15 и заканчивая сборкой 15.0.898.11, возвращают значение ErrorInvalidOperation в элементе ResponseCode , когда операция FindItem используется для поиска нескольких папок в архивном почтовом ящике.