2011-09-14 48 views
1

我已經研究瞭如何執行此操作並且沒有運氣查看API文檔。有誰知道什麼是我爲特定用戶檢索聯繫人的必要代碼。從EWS託管API中檢索聯繫人

任何幫助,將不勝感激

回答

1

基本上,它歸結爲以下三行:

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)); 

你需要與你正在尋找的地址來替換targetmailaddress。如果您只有一個Exchange Server,則可以省略AutoDiscover部分,並將服務URL添加到第一個列表中的服務初始化中。

像往常一樣,您可以將項過濾器添加到FindItems調用。

3

我在網上找到的所有其他答案都過於複雜。 ResolveName應該可以工作。

以下示例代碼適用於我;其餘的只是看着不同的字典,並獲得必要的信息。

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; 
      } 
     } 
    } 
相關問題