在.NET中获取用户的Exchange服务器和电子邮件地址

时间:2012-03-14 16:27:30

标签: c# .net windows exchange-server directoryservices

H I。我想知道我的用户的Exchange服务器的地址(假设她在典型的Windows办公网络中)。这是在C#应用程序中。


我已经拥有用户的电子邮件地址,我在{em> System.DirectoryServices.AccountManagement

之后在System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress找到了它

3 个答案:

答案 0 :(得分:2)

我将它用于我的Exchange客户端应用程序。

  1. 安装Exchange Web Services Managed API
  2. 更改C#项目的属性/应用程序将目标框架更改为“.NET Framework 4”而非“.NET 4 Client Profile”
  3. 参考C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.WebServices.dll
  4. 现在代码:

    var exchange = new ExchangeService();
    exchange.AutodiscoverUrl(from);
    var server = exchange.Url.Host;
    Console.WriteLine(server);
    

    这是MSDN documentation。但请注意它是未发布的API版本1.2。我找不到版本1.1的文档

答案 1 :(得分:1)

您正在寻找名为homeMDB的AD属性: http://msdn.microsoft.com/en-us/library/ms980583(v=exchg.65).aspx

我认为这个属性没有一个漂亮的.NET包装器,所以你需要使用一个较低级别的LDAP API来获取它。

请注意,对于更高版本的Exchange(即2010),您可以连接到任何CAS角色,Exchange将确定路由。

答案 2 :(得分:1)

您是否考虑过使用自动发现? http://technet.microsoft.com/en-us/library/bb124251.aspx