ウェブを何時間も検索した後、あなたは私の最後の希望です:
MicrosoftExchangeServerからの送受信メールを読み取るシステムを構築する必要があります。そのための次のスクリプトを見つけました:Exchange-Web-Services-for-PHP(Heartspring) https://github.com/Heartspring/Exchange-Web-Services-for-PHP
既存のget_messages()関数は、「受信トレイ」などのフォルダのすべてのメッセージを返します。これまでのところ、すべてが明確です。私の問題は、「送信済み」からすべてのメッセージを取得したいときに始まります-フォルダ-「送信」から「送信済みアイテム」まで、多くの単語を試しました。結果なし(メールボックスは利用できません)
私のアイデアは、フォルダ「root」のすべてのサブフォルダを取得することで、次のように記述しました。
include "init.php";
$ec = new ExchangeClient();
$ec->init("bambullis@123.de", "", NULL, "https://amxprd3610.outlook.com/EWS/Services.wsdl");
$folders = $ec->get_subfolders("root");
foreach($folders as $folder) {
print_r($folder);
}
これは私が得るものです:
stdClass Object
(
[FolderId] => stdClass Object
(
[Id] => AAAeAGJhbWJ1bGxpc0BzdHVrZSbi5kZQAuAAAAAABw352p5E4yS5voYF9ELBmiAQBXYPdO6NZAQ6T9C3xviT7xAAAAC1iXAAA=
[ChangeKey] => AQAAABYAAABXYPdO6NZAQ6T9C3xviAALNCey
)
[DisplayName] => Oberste Ebene des Informationsspeichers
[TotalCount] => 0
[ChildFolderCount] => 16
[UnreadCount] => 0
)
(FolderId-> Idがbase64でエンコードされていることはわかっていますが、セキュリティ上の理由から上記の文字列を変更しました; o))
ここで、このディレクトリのサブフォルダを一覧表示しようとしました(メールボックスを追加して、値「ChildFolderCount」が変更されるかどうかを確認しました)。
...
print_r($folder);
print_r($ec->get_subfolders($folder->FolderId->Id));
...
これは私が得るエラーです:リクエストはスキーマ検証に失敗しました:'Id'属性は無効です
私は何を間違えましたか?「ルート」からすべてのサブフォルダーを再帰的に取得するにはどうすればよいですか?私を助けることができるこの素敵な人に感謝します!