Получить вход на SMTP-адрес пользователя через EWS? - PullRequest
6 голосов
/ 21 мая 2011

У меня есть клиентское приложение, написанное с использованием EWS Managed API 1.1.Вот ситуация:

  • Клиент не работает на компьютере в том же домене, что и сервер Exchange.
  • У меня есть имя пользователя и парольпользователь, но не его адрес электронной почты.
  • Нет никакого сходства между именем пользователя (например, ABC123 \ 001234) и адресом электронной почты (например, joe.bloggs@company.com).

Я могупросто подключайтесь к EWS, отправляйте сообщения и т. д.

Однако моему программному обеспечению необходимо определить адрес электронной почты аутентифицированного пользователя, и по разным причинам я не могу просто попросить его предоставить.

Я предполагал, что смогу получить такую ​​простую информацию из веб-сервиса, но я в замешательстве!

Возможно ли это и в 2007, и в 2010 году?

Спасибо!

1 Ответ

3 голосов
/ 03 июня 2011

Вы можете сделать это, используя ExchangeService.ResolveName. Я попробовал это на следующем примере кода EWS Managed API на Exchange 2007, и это сработало как прелесть:

var service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://serv/EWS/exchange.asmx");
service.Credentials = new NetworkCredential("001234", "PasswordForUser001234", "Domain");

ServicePointManager.ServerCertificateValidationCallback = (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) =>
    {
        return true;
    };

var resolvedNames = service.ResolveName("001234");
foreach (var resolvedName in resolvedNames)
{
    Console.WriteLine(resolvedName.Mailbox.Address);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...