即使交换服务器中存在邮箱,EWS Resolve名称也不会返回邮箱

问题描述

我正尝试使用以下EWS服务从交换服务器中搜索邮箱。

 ewsClient.ResolveName("roomname@microsoft.com",ResolveNameSearchLocation.DirectoryThenContacts,true,props)

但是它总是返回一个空列表,这意味着交换服务器中没有具有该地址的邮箱。 实际上,该邮箱存在于Exchange服务器中,我们可以使用以下命令通过PowerShell进行访问:

 Get-MailBox "roomname@microsoft.com"

使用相同的服务帐户访问EWS和PowerShell。

可能是什么问题?

解决方法

EWS中的ResolveName操作将仅返回在全局地址列表中可见的对象的结果。如果已将其从GAL中隐藏,则将显示Get-Mailbox和hiddenfromaddresslistsenabled属性。