Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exchange server 使用php ews的cron作业仅从Exchange server获取新电子邮件_Exchange Server_Exchangewebservices_Php Ews - Fatal编程技术网

Exchange server 使用php ews的cron作业仅从Exchange server获取新电子邮件

Exchange server 使用php ews的cron作业仅从Exchange server获取新电子邮件,exchange-server,exchangewebservices,php-ews,Exchange Server,Exchangewebservices,Php Ews,我需要一个cron作业来仅获取Exchange服务器自上次同步以来收到的新电子邮件 我用imap服务器编写了相同的代码,并且很容易从ID获取电子邮件。因此,我在for循环结束时将最后一个ID保存到DB,并在下次执行cron作业时从该ID恢复 我在Exchange中尝试了相同的操作,但出现以下错误: 无法搜索带有“ErrorInvalidValueForProperty:El valor Specificiado no es válido para la propiedad”的邮件 要在Excha

我需要一个cron作业来仅获取Exchange服务器自上次同步以来收到的新电子邮件

我用imap服务器编写了相同的代码,并且很容易从ID获取电子邮件。因此,我在for循环结束时将最后一个ID保存到DB,并在下次执行cron作业时从该ID恢复

我在Exchange中尝试了相同的操作,但出现以下错误: 无法搜索带有“ErrorInvalidValueForProperty:El valor Specificiado no es válido para la propiedad”的邮件

要在Exchange中获取ItemId,我使用以下代码,没有错误:

$item->ItemId->Id;
它返回类似于:

AAMkADk3ZWRhY2VmLTdiY2UtNDkxYy04ZDMyLWZiZWIyYTQ4ZjQyMABGAAAAAAChH5wDkXAqTZaoH1oRodz8BwD8BvGliMkPTK/cnnmZJDPUAAAAvGXfAAD8BvGliMkPTK/cnnmZJDPUAAAAvJN5AAA=
要查找电子邮件,我正在尝试以下代码(前面提到的错误):


谢谢

EWS ItemId不是可搜索的属性,因为它不需要。例如,您可以绑定到有问题的Id以查看该项是否存在。如果它不再存在,那么您将得到一个特定的错误来告诉您。然而,SyncFolderItems操作可能是更适合使用的方法

$request = new FindItemType();
$request->ParentFolderIds = new NonEmptyArrayOfBaseFolderIdsType();
$request->Traversal = ItemQueryTraversalType::SHALLOW;

$greater_than = new IsGreaterThanOrEqualToType();
$greater_than->FieldURI = new PathToUnindexedFieldType();
$greater_than->FieldURI->FieldURI = UnindexedFieldURIType::ITEM_ID;
$greater_than->FieldURIOrConstant = new FieldURIOrConstantType();
$greater_than->FieldURIOrConstant->Constant = new ConstantValueType();
$greater_than->FieldURIOrConstant->Constant->Value = $UID;