Exchange 2008迁移至2013后,Outlook Redemption无法登录邮箱求助
解决Outlook Redemption连接Exchange 2013登录失败的问题
让我一步步帮你排查这个迁移后的登录问题,结合你描述的现象和报错信息,咱们从核心配置到代码调整逐一梳理:
一、核心背景与矛盾点梳理
你当前的情况:
- 从Exchange 2008迁移至2013,旧版Redemption依赖的RPC协议被Exchange 2013弃用,升级到Redemption 5.21后改用
LogonHostedExchangeMailbox仍无法登录 - 关键反差:Outlook 2016能正常通过MapiOverHttp自动配置,但自研应用持续报错;配置Autodiscover记录后仍出现401/403权限错误、DNS解析问题,且MAPI虚拟目录"命令行显示存在但控制台看不到"
二、分步骤排查与解决
1. 强制Redemption启用MapiOverHttp支持
Redemption 5.21本身支持MapiOverHttp,但默认可能未强制开启,先调整代码添加协议强制配置,同时换用更适配本地Exchange的登录方法:
Dim objRDOSession As Redemption.RDOSession = Nothing objRDOSession = CreateObject("Redemption.RDOSession") objRDOSession.MapiHttpEnabled = True ' 关键:强制使用MapiOverHttp协议 ' 改用普通Logon方法适配本地Exchange,替换为实际邮箱和密码 objRDOSession.Logon("", "<USERMAIL@DOMAIN>", False, False, "<PASSWORD>", "")
注:
LogonHostedExchangeMailbox更适配Exchange Online环境,本地Exchange 2013用普通Logon方法结合邮箱地址+密码更稳妥。
2. 修复Autodiscover的认证与权限问题
报错中的HTTP error 401和403说明Autodiscover的认证配置存在问题:
- 检查并修复Autodiscover虚拟目录认证:
打开Exchange管理Shell,运行命令查看当前配置:
确保Get-AutodiscoverVirtualDirectory | fl Identity, BasicAuthentication, WindowsAuthenticationBasicAuthentication和WindowsAuthentication均为True,若未开启,执行以下命令启用:Set-AutodiscoverVirtualDirectory -Identity "<CAS_SERVER>\Autodiscover (Default Web Site)" -BasicAuthentication $true -WindowsAuthentication $true - 验证Autodiscover服务的可访问性:
在应用运行的机器上,打开IE访问https://autodiscover.<DOMAIN>/autodiscover/autodiscover.xml,输入域账号密码:- 如果出现证书错误,需将证书导入本地计算机的信任证书存储
- 若能返回XML内容,说明Autodiscover服务本身正常,问题出在应用端的认证或协议配置
- 确认DNS记录有效性:
在应用机器上运行以下命令验证DNS解析:
确保解析到正确的Exchange CAS服务器IP,若存在缓存问题,执行nslookup autodiscover.<DOMAIN> nslookup -type=SRV _autodiscover._tcp.<DOMAIN>ipconfig /flushdns刷新本地DNS缓存。
3. 修复MAPI虚拟目录的配置与可见性
你提到MAPI虚拟目录"命令行存在但控制台不可见",说明配置可能未生效:
- 检查并配置MAPI虚拟目录:
运行Exchange管理Shell命令查看当前配置:
若Get-MapiVirtualDirectory | fl Identity, InternalUrl, ExternalUrl, AuthenticationInternalUrl或ExternalUrl为空,执行以下命令设置:Set-MapiVirtualDirectory -Identity "<CAS_SERVER>\mapi (Default Web Site)" -InternalUrl https://<DOMAIN>/mapi -ExternalUrl https://<DOMAIN>/mapi -IISAuthenticationMethods Basic, Ntlm, Negotiate - 重启IIS使配置生效:
执行iisreset /noforce重启IIS服务,之后再检查Exchange控制台是否能看到MAPI虚拟目录。 - 确认组织级MapiOverHttp已启用:
运行以下命令查看状态:
若结果为Get-OrganizationConfig | fl MapiHttpEnabledFalse,执行命令启用:Set-OrganizationConfig -MapiHttpEnabled $true
4. 检查应用运行环境与权限
- 确保应用机器安装正确的MAPI组件:
Redemption依赖Outlook的MAPI库,建议在应用运行机器上安装Outlook 2016或更高版本的MAPI客户端(不要使用旧版Exchange MAPI/CDO 1.2.1,它不支持MapiOverHttp)。 - 应用运行账号权限验证:
若为IIS托管应用,确保应用池身份是拥有Exchange邮箱访问权限的域账号,不要使用本地系统账号;桌面应用则确保登录用户为域内有权限的账号。 - 防火墙端口检查:
确认应用机器到Exchange CAS服务器的443端口(HTTPS)已开放,MapiOverHttp依赖该端口通信。
三、最终验证步骤
- 先在应用机器上用Outlook 2016登录目标邮箱,确认能正常收发,排除Exchange服务器本身的问题
- 调整Redemption代码并启用MapiOverHttp后重新测试登录
- 若仍报错,可设置
objRDOSession.LogLevel = 4生成详细日志,进一步定位问题
内容的提问来源于stack exchange,提问作者mika
相关产品推荐
相关产品推荐

