2011-09-14 2 views

Répondre

1

Fondamentalement, cela se résume à ces trois lignes:

var service = new ExchangeService(ExchangeVersion.Exchange2007_SP1) 
    {Credentials = new NetworkCredential("username", "password")}; 

service.AutodiscoverUrl("targetmailaddress", url => true); 

var items = service.FindItems(new FolderId(WellKnownFolderName.Contacts, new Mailbox("targetmailaddress")), new ItemView(512)); 

Vous devez remplacer targetmailaddress avec l'adresse que vous recherchez. Si vous n'avez qu'un seul serveur Exchange, vous pouvez omettre la partie AutoDiscover et ajouter l'URL du service à l'initialisation du service dans la première liste.

Comme d'habitude, vous pouvez ajouter un filtre d'élément à l'appel FindItems.

3

Toutes les autres réponses que j'ai trouvées en ligne sont trop compliquées. ResolveName devrait fonctionner.

L'exemple de code suivant a fonctionné pour moi; le reste ne fait que regarder dans les différents dictionnaires et obtenir les informations nécessaires.

public void findContact(string name) 
    { 
     NameResolutionCollection coll = service.ResolveName(name, 
      ResolveNameSearchLocation.ContactsThenDirectory, 
      true); 
     foreach (NameResolution res in coll) 
     { 
      Contact contact = res.Contact; 
      if (contact != null) 
      { 
       // retrieve contact info here 
       if (contact.PhoneNumbers != null) 
       { 
        Console.WriteLine("get different kinds of phone numbers from here"); 
       } 

       if (contact.EmailAddresses != null) 
       { 
        Console.WriteLine("get different kinds of email addresses from here"); 
       } 

       return; 
      } 
     } 
    } 
Questions connexes