FindItem 操作

FindItem EWS 操作に関する情報を検索します。

FindItem 操作は、ユーザーのメールボックス内にあるアイテムを検索します。 この操作では、検索結果を呼び出し元に返す方法をフィルター処理して書式設定するさまざまな方法が提供されます。

FindItem 操作の使用

FindItem 操作要求では、メールボックスを検索し、応答でデータがどのように返されるかを書式設定するためのさまざまな方法が提供されます。 FindItem 要求では、次を指定できます。

  • 検索が浅いトラバーサルか論理的に削除されているか。 これを指定する必要があります。 論理的に削除されたトラバーサルと検索制限を組み合わせると、検索条件に一致する項目がある場合でも、0 個の項目が返されることに注意してください。

  • 項目の応答図形。 これにより、応答で返されるプロパティが識別されます。 これを指定する必要があります。

  • 検索を実行するフォルダー。 これを指定する必要があります。

  • ページ内のビュー データを返すページング メカニズムとビューの種類。 これを指定することは省略可能です。

  • 返される項目をグループ化して並べ替えるオプション。 これを指定することは省略可能です。

  • 返される項目をフィルター処理するための検索制限または高度なクエリ構文 (AQS) 文字列。 コンテンツ インデックス検索に AQS を使用する方法の詳細については、「 QueryString (String)」を参照してください。 これを指定することは省略可能です。

  • 応答で返される項目の並べ替え順序。 これを指定することは省略可能です。

FindItem 操作は、ストリーミング可能なプロパティの最初の 512 バイトのみを返します。 Unicode の場合は、Null 終了の Unicode 文字列を使用して最初の 255 文字を返します。 メッセージ本文の形式や受信者リストは返されません。 FindItem は受信者の概要を返します。 GetItem 操作を使用して、項目の詳細を取得できます。

FindItem はName (EmailAddressType) 要素のみを返し、次のフィールドの Mailbox 要素の EmailAddress (NonEmptyStringType) 要素は返しません。

  • メッセージの [From ] フィールド

  • メッセージの [送信者] フィールド

  • 予定表アイテムの [開催者 ] フィールド

注:

FindItem 操作は、CalendarView 要素で結果を返すことができます。 CalendarView 要素は、1 つの予定表アイテムと定期的な会議のすべての発生を返します。 CalendarView 要素を使用しない場合は、1 つの予定表アイテムと定期的なマスター予定表アイテムが返されます。 CalendarView 要素が使用されていない場合は、定期的なマスターから出現箇所を展開する必要があります。

FindItem 操作では、次の表に示す SOAP ヘッダーを使用できます。

表 1. FindItem 操作 SOAP ヘッダー

Header 要素 説明
DateTimePrecision
DateTimePrecision
サーバーからの応答のデータ/時刻値の解決を秒単位またはミリ秒単位で指定します。 これは要求に適用されます。
偽装
ExchangeImpersonation
クライアント アプリケーションが偽装しているユーザーを識別します。 これは要求に適用されます。
MailboxCulture
MailboxCulture
メールボックスへのアクセスに使用する RFC3066 カルチャを識別します。 これは要求に適用されます。
RequestVersion
RequestServerVersion
操作要求のスキーマ バージョンを識別します。 これは要求に適用されます。
ServerVersion
ServerVersionInfo
要求に応答したサーバーのバージョンを識別します。 これは応答に適用されます。
TimeZoneContext
TimeZoneContext
サーバーからのすべての応答に使用するタイム ゾーンを識別します。 これは要求に適用されます。

FindItem 操作要求の例

次の FindItem 要求の例は、削除済みアイテム フォルダーにある項目に対して BaseShape 要素の IdOnly 列挙によって定義される項目識別子を取得する方法を示しています。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <FindItem xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://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="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindItemResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                      xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                      xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindItemResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                      xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                      xmlns="https://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 要素から開始します。

バージョンの相違点

メジャー バージョン 15 以降でビルド 15.0.898.11 で終わるバージョンの Exchange では、FindItem 操作を使用してアーカイブ メールボックス内の複数のフォルダーを検索するときに、ResponseCode 要素に ErrorInvalidOperation 値が返されます。

関連項目