我正在使用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 属性导航文件夹结构,但这看起来像是一个黑客。
我应该如何访问共享邮箱中的特定文件夹,在Redemption中的服务帐户下运行?
答案 0 :(得分:2)
您可以使用
store = _session.Stores.GetSharedMailbox(“示例共享邮箱”);
folder = store.IPMRootFolder.Folders.Item(“Inbox”)。Folders.Item(“FolderTwo”);
或
store = _session.Stores.GetSharedMailbox(“示例共享邮箱”);
folder = store.GetDefaultFolder(olFolderInbox).Folders.Item(“FolderTwo”);