EWS Resolve name не возвращает почтовый ящик, даже если он существует на сервере exchange

#c# #exchange-server #exchangewebservices #exchange-server-2010

#c# #exchange-server #exchangewebservices #exchange-server-2010

Вопрос:

Я пытаюсь выполнить поиск почтового ящика с сервера Exchange, используя службу EWS, как показано ниже.

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

Но он всегда возвращает пустой список, означающий, что на сервере Exchange нет почтового ящика с этим адресом.
На самом деле этот почтовый ящик существует на сервере Exchange, и мы можем получить к нему доступ через PowerShell с помощью

  Get-Mailbox "roomname@microsoft.com"
  

Доступ к EWS и PowerShell осуществляется с использованием одной и той же учетной записи службы.

В чем может быть проблема?

Комментарии:

1. Это скрытый почтовый ящик? ResolveNames вернет результаты, только если почтовый ящик виден в глобальном списке адресов

2. Привет @GlenScales Как мы можем это проверить?

3. Получите-Почтовый ящик и посмотрите на свойство hiddenfromaddresslistsenabled . Или войдите в OWA или Outlook и проверьте GAL

4. Спасибо @GlenScales. Это сработало. Пожалуйста, добавьте его в качестве ответа.

Ответ №1:

Операция ResolveName в EWS возвращает результаты только для объектов, которые видны в глобальном списке адресов. Get-Mailbox и свойство hiddenfromaddresslistsenabled покажут, был ли он скрыт от GAL.