3

このクラスを使用しているときに、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つしかないようです..

4

1 に答える 1

4

私はそれを理解しました、上記の例では私は使用しなければなりませんでした

$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);
于 2011-07-25T09:35:12.210 に答える