2

例如,要访问日历事件的时间和名称,我们可以这样写:

    $startTime = $event->Start;
    $endTime = $event->End;
    $subject = $event->Subject;

但是通过以下方式无法访问事件的主体:

    $body = $event -> Body

相反,我们必须创建一个单独的响应并查看事件的扩展属性。

4

1 回答 1

3

好问题。大约一周前,我刚刚对此进行了一些研究。基本上,EWS 具有First Class Properties 和 Elements的概念。这意味着某些属性不会返回,FindItem而某些属性最有可能节省空间。项可以包含超过一百个属性,它们的子项可以包含属性等等,所以为了简单起见,有些属性没有返回,FindItem有些则返回。这是文档中的引用

EWS 托管 API EmailMessage.Bind 方法和 EWS GetItem 操作返回的第一类属性和元素集与 EWS 托管 API ExchangeService.FindItems 返回的第一类属性和元素集略有不同方法和 EWS FindItem 操作。

请注意,您不能扩展 FindItems 方法或 FindItem 操作来检索其他属性和元素,例如 ToRecipients、CcRecipients 和 BccRecipients。如果您需要检索这些值,请使用 FindItems 方法或 FindItem 操作来获取电子邮件的项目 ID,然后使用 Bind 方法或 GetItem 操作来检索所需的属性

所以基本上答案归结为“因为你 EWS 不会让你”。如果您想知道哪些属性是 First Class 哪些不是,文档中有一个很好的页面,其中有一个表格可以帮助您确定,位于此处

最后,我是否可以建议升级您用于 EWS 操作的库?我假设您使用jamesiarmes/php-ews的是我所见过的最流行的,但我正在维护我自己的 fork,它位于garethp/php-ews可自动加载的位置,具有用于某些操作的简单访问 API,并且仍在开发中。

于 2015-12-28T11:42:33.820 回答