AutodiscoverUrl对多数邮箱生效,唯独新创建Exchange邮箱报错
我之前处理过几乎一模一样的问题,给你列几个最可能的排查方向,应该能帮你定位到问题:
主SMTP地址差异:先核对新账号的主SMTP地址格式,是不是和老账号完全一致?比如老账号是
xxx@yourcompany.com,新账号会不会被误设成xxx@yourcompany.local或者其他域名?EWS的Autodiscover核心依赖正确的SMTP域名解析,域名不对直接就找不到服务。你可以在Exchange管理中心里查看新账号的邮箱属性,对比老账号的主地址。Autodiscover/EWS权限限制:虽然Exchange团队说账号无差异,但大概率是权限组的问题。比如老账号都加入了某个允许访问EWS的安全组,而新账号没加?或者Exchange的Autodiscover服务对新账号所在的OU做了访问限制?让团队查一下新账号的权限:比如是否在
Exchange Web Services允许的列表里,或者Autodiscover的虚拟目录有没有针对特定组的拒绝规则。手动测试Autodiscover有效性:先别用代码,用Outlook手动配置新账号,看看能不能自动完成配置。如果Outlook也报错找不到Autodiscover,那肯定是Exchange环境的问题(比如DNS记录、账号配置);如果Outlook能正常配置,那就是代码里的Autodiscover逻辑有问题——比如代码里有没有硬编码老账号的Autodiscover端点?或者没有处理重定向?可以在代码里加个回调函数看错误:
service.AutodiscoverUrl("newuser@yourcompany.com", (redirectionUrl) => { // 打印重定向URL,看看有没有异常 Console.WriteLine(redirectionUrl); return true; // 允许重定向,测试用 });邮箱初始化状态:本地Exchange创建新账号后,有时候需要15-30分钟同步AD和Exchange的配置,尤其是邮箱还没完全激活的情况下,Autodiscover会找不到。可以等一段时间再试,或者让Exchange团队用
Get-MailboxStatistics命令检查新账号的邮箱状态是否正常。AD属性同步问题:检查新账号的AD属性,比如
proxyAddresses里的主SMTP地址是不是带大写SMTP:前缀(小写的是别名),msExchMailboxGuid有没有正确生成。如果AD属性没同步完全,Autodiscover服务无法关联到对应的邮箱。
内容的提问来源于stack exchange,提问作者user8149311

