我需要一个 cron 作业来仅获取自上次同步以来在 Exchange 服务器中收到的新电子邮件。
我用 imap 服务器编写了相同的代码,并且由于 ID 很容易获取电子邮件。因此,我将 for 循环结束时的最后一个 ID 保存到数据库中,并在下次执行 cron 作业时从该 ID 恢复。
我在 Exchange 中尝试了相同的操作,但出现以下错误:无法搜索带有“ErrorInvalidValueForProperty: El valor especificado no es válido para la propiedad”的消息。
要在 Exchange 中获取 ItemId,我使用以下代码,没有错误:
$item->ItemId->Id;
它返回如下内容:
AAMkADk3ZWRhY2VmLTdiY2UtNDkxYy04ZDMyLWZiZWIyYTQ4ZjQyMABGAAAAAAChH5wDkXAqTZaoH1oRodz8BwD8BvGliMkPTK/cnnmZJDPUAAAAvGXfAAD8BvGliMkPTK/cnnmZJDPUAAAAvJN5AAA=
要查找电子邮件,我正在尝试以下代码(前面提到的错误):
$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;
谢谢!!