2

PHP EWSを使用して、Exchange サーバー上の特定の送信者による電子メールのリストを取得しようとしています。

特に制限 (検索) の構築に関連する私のコード サンプル:

$request->Restriction = new EWSType_RestrictionType();
$request->Restriction->IsEqualTo = new EWSType_IsEqualToType();

$request->Restriction->IsEqualTo->FieldURI = new EWSType_PathToUnindexedFieldType();
$request->Restriction->IsEqualTo->FieldURI->FieldURI = 'message:Sender';

$request->Restriction->IsEqualTo->FieldURIOrConstant = new EWSType_FieldURIOrConstantType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant->Value = 'Bob Smith';

このタイプの制限により、結果はゼロになります。

制限なしで検索すると、返された結果に送信者情報が含まれていることに気付きました (ただし、ネストされています)。例えば:

[Sender] => stdClass Object
  (
    [Mailbox] => stdClass Object
      (
        [Name] => Bob Smith
      )
  )

制限内のネストされた情報に対応するにはどうすればよいですか?

その他の検索式の例: https://github.com/jamesiarmes/php-ews/wiki/Search-Expression:-Simple-Conditions

4

1 に答える 1

4

MSDNドキュメントに基づいて、 message:Sender には次の定義があります。

プロパティ値

タイプ: Microsoft.Exchange.WebServices.Data.EmailAddress

電子メール アドレス。

そのため、修飾名 "Bob Smith" を使用する代わりに (Outlook では認識されるかもしれませんが、EWS には見当がつきません)、電子メール アドレス ('bsmith@foo.com') を使用してください。

さらに、上記のコードは機能するはずですが、Constant が定義されないため、エラーが発生する可能性があります。代わりにこれを試してください:

$request->Restriction->IsEqualTo->FieldURIOrConstant = new EWSType_FieldURIOrConstantType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant = new EWSType_ConstantValueType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant->Value = 'bsmith@foo.com';
于 2013-04-16T18:36:47.600 に答える