- Если вы хотите получить собственную электронную почту текущего пользователя:
Вы можете использовать ConvertId с общим адресом, и Exchange затем вернет PrimarySMTP для этого почтового ящика, например:
Folder Inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
AlternateId aiAlternateid = new AlternateId(IdFormat.EwsId, Inbox.Id.UniqueId, "mailbox@domain.com");
AlternateIdBase aiResponse = service.ConvertId(aiAlternateid, IdFormat.EwsId);
Console.WriteLine(((AlternateId)aiResponse).Mailbox);
AutoDiscover также возвращает адрес PrimarySMTP почтового ящика, если вы делаете обнаружение на основе POX.
Для проверки других адресов вы также можете использовать ResolveName:
Устранить неоднозначноимен с использованием EWS в Exchange 2013
Если вы хотите получить отображаемое имя вошедшего в систему пользователя в EWS:
Если вы собираетесь использовать ResolveName и хотите displayName, вам следует использовать перегрузку, чтобы указать, что операциядолжен вернуть AD контактную информацию.Тогда вы можете просто использовать свойство DisplayName.
NameResolutionCollection ncCol = service.ResolveName("user@domain.com",ResolveNameSearchLocation.DirectoryOnly,true);
Console.WriteLine(ncCol[0].Contact.DisplayName);
Для получения дополнительной информации вы можете обратиться по этой ссылке:
Как получить отображаемое имя вошедшего в систему пользователя в EWS?
Как получить адрес электронной почты или чек, введенный текущим пользователем, с помощью веб-служб Exchange?