通过EWS登录用户的SMTP地址?

Chr*_*ood 6 exchangewebservices

我有一个使用EWS Managed API 1.1编写的客户端应用程序.情况如下:

  • 客户端不在与Exchange Server相同的域中的计算机上运行.
  • 我有用户的用户名和密码,但不是他们的电子邮件地址.
  • 用户名(例如ABC123\001234)和电子邮件地址(例如joe.bloggs@company.com)之间没有共性.

我可以很好地连接到EWS,发送消息等.

但是,我的软件需要发现经过身份验证的用户的电子邮件地址,并且出于各种要求的原因,不能只是要求用户提供它.

我以为我可以从网络服务中获得这么简单的细节,但我很难过!

这对2007年和2010年都有可能吗?

谢谢!

Jak*_*sen 3

您也许可以使用 来做到这一点ExchangeService.ResolveName。我在 Exchange 2007 上使用以下 EWS 托管 API 代码示例进行了尝试,效果非常好:

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);
}
Run Code Online (Sandbox Code Playgroud)