我正在使用 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 的服务帐户下运行?