Ecco come ottenere l'elenco contatti dall'elenco dei contatti in cambio tramite EWS. Non so ancora come ottenere contatti dalla lista globale, ho guardato l'API solo un'ora fa.
private static void ListContacts(ExchangeService svc) {
foreach (var v in svc.FindItems(WellKnownFolderName.Contacts,
new ItemView(20))) {
Contact contact = v as Contact;
ContactGroup contactGroup = v as ContactGroup;
//v.Load(); // Turns out you don't need to load for basic props.
if (contact != null) {
Console.WriteLine("Contact: {0} <{1}>",
contact.DisplayName,
contact.EmailAddresses[EmailAddressKey.EmailAddress1]);
} else if (contactGroup != null) {
Console.WriteLine("Contact Group: {0}", contactGroup.DisplayName);
switch (svc.RequestedServerVersion) {
case ExchangeVersion.Exchange2007_SP1:
ExpandGroupResults groupResults
= svc.ExpandGroup((contactGroup.Id));
foreach (var member in groupResults) {
Console.WriteLine("+ {0} <{1}>",
member.Name, member.Address);
}
break;
case ExchangeVersion.Exchange2010:
foreach (GroupMember member in contactGroup.Members) {
Console.WriteLine("+ {0} <{1}>",
member.AddressInformation.Name,
member.AddressInformation.Address);
}
break;
default:
Console.WriteLine(
"** Unknown Server Version: {0}",
svc.RequestedServerVersion);
break;
}
} else {
Console.WriteLine("Unknown contact type: {0} - {1}",
contact.GetType(), v.Subject);
}
}
}
ho ommited creazione del servizio per verbocity, hanno uno sguardo al Exchange Web Services API per ulteriori informazioni.
fonte
2010-02-09 08:53:58
EWS Managed API (.Net 3.5 pre-req) un'opzione? –
Alfred, ho indagato un po 'e, poiché ci sono diversi modi per connettersi a Exchange a seconda della versione, questo è ora in attesa. Ma la mia prima opzione sarebbe l'API gestita EWS, sì. Grazie! – Johnny
Quello che ho fatto per le versioni precedenti di Exchange è semplicemente recuperare gli elenchi dalla directory active. Libreria commerciale –