EWS 解析名称不会返回邮箱,即使该邮箱存在于 Exchange 服务器中

Posted

技术标签:

【中文标题】EWS 解析名称不会返回邮箱,即使该邮箱存在于 Exchange 服务器中【英文标题】:EWS Resolve name doesn't return mailbox even if that exists in the exchange server 【发布时间】:2020-10-11 15:36:11 【问题描述】:

我正在尝试使用 EWS 服务从 Exchange 服务器搜索邮箱,如下所示。

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

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

 Get-Mailbox "roomname@microsoft.com"

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

可能是什么问题?

【问题讨论】:

是隐藏邮箱吗?仅当邮箱在全局地址列表中可见时,ResolveNames 才会返回结果 嗨@GlenScales 我们如何检查? 获取邮箱并查看 hiddenfromaddresslistsenabled 属性。或登录 OWA 或 Outlook 并检查 GAL 感谢@GlenScales。它成功了。请将其添加为答案。 【参考方案1】:

EWS 中的 ResolveName 操作将只返回在全局地址列表中可见的对象的结果。 Get-Mailbox 和 hiddenfromaddresslistsenabled 属性将显示它是否对 GAL 隐藏。

【讨论】:

以上是关于EWS 解析名称不会返回邮箱,即使该邮箱存在于 Exchange 服务器中的主要内容,如果未能解决你的问题,请参考以下文章

EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒

EWS:来自日历 FolderId 的邮箱地址,这可能吗?

使用 EWS 托管 API 创建共享邮箱

EWS 电子邮件文件夹所有者

Powershell EWS 从共享邮箱发送电子邮件

C# Managed EWS 通过 ID 从共享邮箱获取电子邮件