Hi. I would like to know the address of my user's Exchange server (assuming she's in a typical Windows office network). This is in a C# application.
I already have the user's email address, I found it at System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress
, after referencing System.DirectoryServices.AccountManagement
I use this for my Exchange client application.
- Install Exchange Web Services Managed API
- Change your C# project's Properties/Application changed the target framework to '.NET Framework 4' not '.NET 4 Client Profile'
- Reference
C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.WebServices.dll
Now code:
var exchange = new ExchangeService();
exchange.AutodiscoverUrl(from);
var server = exchange.Url.Host;
Console.WriteLine(server);
Here's the MSDN documentation. but note it's for the unreleased version 1.2 of the API. I can't locate the documentation for version 1.1
You're looking for the AD attribute called homeMDB: http://msdn.microsoft.com/en-us/library/ms980583(v=exchg.65).aspx
I don't think there is a nice .NET wrapper for this attribute, so you'll need to use a lower-level LDAP API to get it.
Note that with later versions of Exchange (i.e. 2010) you can connect to any CAS role and Exchange will figure out the routing.
Have you looked into using autodiscover? http://technet.microsoft.com/en-us/library/bb124251.aspx
来源:https://stackoverflow.com/questions/9705951/get-users-exchange-server-and-email-address-in-net