通过PHP从exchange web服务获取未读邮件


Getting unread mail from exchange web services via 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个常量没有任何函数或其他属性。

我明白了,在上面的例子中,我必须使用

$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);