2012-03-01 7 views
1

で共有メールボックス/特定のフォルダにアクセスする私は、サービスアカウントの下で動作する償還(MS Exchangeのライブラリ)を使用してコードの既存の部分を変換しています。私が抱えている問題は、以前のようにメールフォルダを検索できないということです。Outlookの償還ライブラリ - サービスアカウント

サービスアカウントへの移行の最初のハードルはへ

_rdoSession.Logon() // <- Which uses the account’s MAPI profile, and throws an exception under a service account 

を切り替えることによって克服された。問題は、特定のフォルダにアクセスしようとしているが付属しています

_rdoSession.LogonExchangeMailbox("", "mailserver.example.com"); 

。以前、私が使用することができた:私はエラーを取得するように、サービスアカウントの下で

_session.GetFolderFromPath("\\\\Mailbox - Example shared mailbox\\Inbox\\FolderOne"); 
_session.GetFolderFromPath("\\\\Mailbox - Example shared mailbox\\Inbox\\FolderTwo"); 

、私は、同じ構文で共有メールアカウントに対処することはできません。

Could not open store "Mailbox – Example shared mailbox": Error in IMAPITable.FindRow: MAPI_E_NOT_FOUND 

いくつかのグーグルが示されています

_session.Stores.GetSharedMailbox("Example shared mailbox ") 

これが正しい共有メールボックスオブジェクトを返すことを確認しました。

しかし - そこから、何の検索方法はありません。私は.RootFolderプロパティからフォルダ構造をナビゲートするための新しいコードをビルドして、私の運を試すことができますが、これはハックのように思えます。

は、どのように私は償還のサービスアカウントで実行共有メールボックス内の特定のフォルダにアクセスする必要がありますか?あなたはどちらか

店= _session.Stores.GetSharedMailbox( "例共有メールボックス")を使用することができます

答えて

2

フォルダ= store.IPMRootFolder.Folders.Item( "受信トレイ")Folders.Item( "FolderTwo")。

又は

ストア= _session.Stores.GetSharedMailbox( "例共有メールボックス")。

フォルダ= store.GetDefaultFolder(olFolderInbox).Folders.Item( "FolderTwo")。

関連する問題