1

我正在使用 Redemption(一个 MS Exchange 库)转换现有的一段代码,以便在服务帐户下运行。我遇到的问题是我无法像以前那样查找邮件文件夹。

切换到服务帐户的第一个障碍是通过切换克服的

_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属性导航文件夹结构,但这似乎是一个 hack。

我应该如何访问共享邮箱中的特定文件夹,在 Redemption 的服务帐户下运行?

4

1 回答 1

2

你可以使用

store = _session.Stores.GetSharedMailbox("示例共享邮箱");

文件夹 = store.IPMRootFolder.Folders.Item("收件箱").Folders.Item("FolderTwo");

或者

store = _session.Stores.GetSharedMailbox("示例共享邮箱");

文件夹 = store.GetDefaultFolder(olFolderInbox).Folders.Item("FolderTwo");

于 2012-03-02T02:28:48.843 回答