Как вы получаете всю непрочитанную почту в почтовом ящике обмена пользователями с использованием 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 константы без каких-либо функций или других свойств.
Я понял это, в приведенном выше примере мне пришлось использовать
$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);