1

我们目前正在从 Exchange Server 2008 迁移到 2013。我们使用自己的带有 Outlook Redemption 的编码应用程序,它无法登录到新的 Exchange Server 2013。在我们的应用程序的旧版本中,我们使用了该功能RDOSession.LogonExchangeMailbox,它不再支持交换 2013 (RPC)。我们更新了 Outlook Redemption 5.21 的应用程序,无法登录存储在 Exchange 2013 服务器上的邮箱。两台服务器都在线,可以接收和发送邮件。

我们应用程序中登录邮箱的代码类似于:

Dim objRDOSession As Redemption.RDOSession = Nothing
objRDOSession = CreateObject("Redemption.RDOSession")
objRDOSession.LogonHostedExchangeMailbox("<USERMAIL@DOMAIN>", "", "")

如果我们登录到仍存储在旧 Exchange 2008 服务器上的邮箱,一切正常。但是如果我们尝试登录新的 Exchange 2013 服务器上的邮箱,LogonHostedExchangeMailbox(...) 的调用会抛出异常:

GetAutodiscoverForEmailAddress: There are no autodiscover servers in the AD for this address
Error in WinHttpSendRequest(<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_CANNOT_CONNECT
Error in WinHttpSendRequest(autodiscover.<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_NAME_NOT_RESOLVED
Error in WinHttpSendRequest(autodiscover.<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_NAME_NOT_RESOLVED
GetAutodiscoverUrlFromDns error: DNS lookup error using <IPDNSSERVER1>:DNS Server Reports Query Name Error
DNS lookup error using <IPDNSSERVER2>:DNS Server Reports Query Name Error

我们尝试为邮件服务器分配一个“自动发现”A-Record 和一个 SRV 记录“_autodiscover”:

GetAutodiscoverForEmailAddress: There are no autodiscover servers in the AD for this address
Error in WinHttpSendRequest(<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_CANNOT_CONNECT
HTTP error 401 from https://autodiscover.<DOMAIN>/autodiscover/autodiscover.xml
Server response:

Expected HTTP_STATUS_REDIRECT, received 403
GetAutodiscoverUrlFromDns error: DNS lookup error using <IPDNSSERVER1>:DNS Server Reports Query Name Error
DNS lookup error using <IPDNSSERVER2>:DNS Server Reports Query Name Error

我们可以看到 Autodiscover 的虚拟目录,但看不到 mapi 的虚拟目录。我们不确定为什么没有显示 mapi 虚拟目录,因为命令行开关说有一个。 虚拟目录 Mapi 虚拟目录

我们使用了 Outlook 2016 中的自动配置测试,它运行良好。它显示 MapiOverHttp 作为使用的协议: Outlook 2016 Autoconfiguration test

我希望我已经对我们的问题提出了一些想法,并且他/她可以帮助我们连接到我们的邮箱。谢谢!

4

1 回答 1

1

只是跟进:主要问题是 Exchange 2013 及更高版本不支持独立的 MAPI 调用。我必须在我们的应用程序运行的客户端中安装 Outlook。感谢德米特里的帮助

于 2019-11-20T15:04:18.053 回答