Php 按发件人列出的限制(搜索)

Php 按发件人列出的限制(搜索),php,exchangewebservices,php-ews,Php,Exchangewebservices,Php Ews,我正在尝试使用检索exchange服务器上特定发件人的电子邮件列表 我的代码示例专门与限制(搜索)构造相关: $request->Restriction = new EWSType_RestrictionType(); $request->Restriction->IsEqualTo = new EWSType_IsEqualToType(); $request->Restriction->IsEqualTo->FieldURI = new EWSType_

我正在尝试使用检索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';
这种类型的限制将导致零结果

我注意到,当我不受限制地搜索时,返回的结果包含发件人信息(但它是嵌套的)。例如:

如何满足限制中嵌套的信息

其他搜索表达式示例:

基于文档,message:Sender具有以下定义:

财产价值

类型:Microsoft.Exchange.WebServices.Data.EmailAddress

电子邮件地址

因此,不要使用限定名“Bob Smith”(Outlook可能会识别它,但EWS没有线索),而是使用电子邮件地址('bsmith@foo.com")

此外,虽然上面的代码应该可以工作,但它可能会抛出一个错误,因为从未定义常量。请尝试以下方法:

$request->Restriction->IsEqualTo->FieldURIOrConstant = new EWSType_FieldURIOrConstantType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant = new EWSType_ConstantValueType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant->Value = 'bsmith@foo.com';
根据文档,message:Sender具有以下定义:

财产价值

类型:Microsoft.Exchange.WebServices.Data.EmailAddress

电子邮件地址

因此,不要使用限定名“Bob Smith”(Outlook可能会识别它,但EWS没有线索),而是使用电子邮件地址('bsmith@foo.com")

此外,虽然上面的代码应该可以工作,但它可能会抛出一个错误,因为从未定义常量。请尝试以下方法:

$request->Restriction->IsEqualTo->FieldURIOrConstant = new EWSType_FieldURIOrConstantType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant = new EWSType_ConstantValueType();
$request->Restriction->IsEqualTo->FieldURIOrConstant->Constant->Value = 'bsmith@foo.com';

哇!谢谢你,马特!这真的很有效。非常感谢!哇!谢谢你,马特!这真的很有效。非常感谢!