【问题标题】:Unable to access other users Office 365 inbox using redemption无法使用兑换访问其他用户 Office 365 收件箱
【发布时间】:2026-02-04 19:30:01
【问题描述】:

我有一个使用兑换来访问用户收件箱项目的程序。该程序在内部 Exchange 服务器上运行没问题。但是,我们正在迁移到 O365。我们正在尝试将程序转换为连接到 Office 365。它适用于登录到 PC 并具有 Outlook 设置的用户。当我尝试在线访问另一个用户邮箱时,我拥有完全访问权限,我在 IMAPISession::OpenMsgStore: MAPI_E_LOGON_FAILED" 中收到错误。

有没有人解决这个问题?除了完全访问权限之外,我还需要分配任何权限吗?让我知道你有什么经验。

这是连接代码。

rdsSession.LogonHostedExchangeMailbox("user@domain.com", "user@domain.com", "Password")

尝试获取收件箱时,此行出现错误。

rdfFolder = rdsSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox)

如果我把我的帐户放在那里,它就可以工作。另一个具有完全访问权限的用户帐户没有。

谢谢

【问题讨论】:

    标签: c# visual-studio outlook-redemption


    【解决方案1】:

    经验法则是首先使用LogonHostedExchangeMailbox 连接到您的(管理员)邮箱,然后使用RDOSession.GetSharedMailbox / GetSharedDefaultFolder 打开其他用户的邮箱

    【讨论】:

    • 谢谢你试试这个。
    • 我现在在 getsharedmailbox( ) 中使用 user@domain.mail.onmicrosoft.com 域时得到了这个。 {"找不到商店 DN" & vbCrLf & "无法检索自动发现 XML:GetAutodiscoverForEmailAddress:AD 中没有此地址的自动发现服务器" & vbCrLf & "来自uxy.com/autodiscover/autodiscover.xml 的 HTTP 错误 404" & vbCrLf & "服务器响应:" & vbCrLf & "//W3C//DTD XHTML 1.0 Strict//EN"" ""w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"">"
    • 我得到了这个工作,我的问题是我的 O365 帐户上的多因素身份验证。将其关闭并切换到 getsharedmailbox 和 getshareddefaultfolder 后,一切正常。对于内部用户和 O365 用户,因为我们仍处于混合模式。谢谢德米特里。