Получение непрочитанной почты из веб-сервисов обмена через PHP

Как вы получаете всю непрочитанную почту в почтовом ящике обмена пользователями с использованием PHP при использовании этого класса ?

Я решил сначала перечислить содержимое папок следующим образом:

$ews = new ExchangeWebServices("mailserver.domain.local", "user", "pass"); $request = new EWSType_FindFolderType(); $request->FolderShape = new EWSType_FolderResponseShapeType(); $request->FolderShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES; $request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType(); $request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType(); $request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::INBOX; $request->Traversal = new EWSType_FolderQueryTraversalType(); $result = $ews->FindFolder($request); var_dump($result); 

Только после этого я получаю эту ошибку:

Catchable fatal error: Object of class EWSType_FolderQueryTraversalType could not be converted to string

Есть ли кто-нибудь с опытом работы с этим классом, который может сказать мне, что я делаю неправильно?

Я знаю, что строка должна быть передана, но, похоже, класс имеет только 3 константы без каких-либо функций или других свойств.

Related of "Получение непрочитанной почты из веб-сервисов обмена через PHP"

Я понял это, в приведенном выше примере мне пришлось использовать

 $request->Traversal = EWSType_FolderQueryTraversalType::DEEP; 

Поскольку он имел только 3 константы.

Но публиковать его здесь, поскольку я думаю, что это может быть полезно для всех, кто хочет сделать то же самое, перечисление всей почты в вашем почтовом ящике выглядит следующим образом:

 $ews = new ExchangeWebServices("mailserver.domain.local", "user", "pass"); $request = new EWSType_FindItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES; $request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType(); $request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType(); $request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::INBOX; $request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW; $result = $ews->FindItem($request);