2017-09-19 20 views
0

Exchangeのメールボックスフォルダを一覧表示しようとしましたが、1つの問題があります。他のユーザーからリンクされたカレンダーを取得する方法は?

ウェブインターフェイス経由で交換サーバーにログオンすると、他の同僚によって私のために共有された多くのカレンダーを見ることができます。また私はOutlookでこれらのカレンダーを見ることができます。

下記のコードを使用すると、(自分のアカウントが所有する)すべてのオブジェクトが表示されますが、これらの共有予定表は表示されません。

このカレンダーにアクセスする方法はありますか? 彼らは私のために共有されている、私は私のOutlookからそれらの内部の予定を作成することができます。

Session := CreateOleObject('Redemption.RDOSession') as IRDOSession; 
Session.LogonExchangeMailbox(edit1.Text, edit2.Text); 

Memo1.Lines.Add(Session.Stores.FindExchangePublicFoldersStore.Name); 
for i := 1 to Session.Stores.count do 
begin 
    Store := Session.Stores.Item(i, True); 
    Memo1.Lines.Add('=> ' + Store.Name + ' : ' + IntToStr(Store.StoreKind)); 
    if Store.StoreKind <> 0 then 
    begin 
    for j := 1 to Store.IPMRootFolder.Folders.Count do 
    begin 
     Folder := Store.IPMRootFolder.Folders.Item(j); 
     Memo1.Lines.Add('==> ' + Folder.Name); 
     for k := 1 to Folder.Folders.Count do 
     Memo1.Lines.Add('==> ' + Folder.Folders[k].Name); 
    end; 
    end; 
end; 

答えて

1

共有フォルダは、エンドユーザーに表示されるIPMツリーの外側のプライマリメールボックスOSTファイルに格納されます。 Redemptionは明示的に共有フォルダを公開していませんが、RDOStore.RootFolderを使用して取得することができます。あなたはOutlookSpyでそれらを見ることができます - IMsgStoreをクリックし、問題のフォルダ(ルートフォルダ\共有データ\ etc)にドリルダウンしてください

関連する問題