2011-09-14 54 views

答えて

1

を理解されるであろう基本的に、それは、これらの3つのラインに沸く:

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が1つだけの場合は、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; 
      } 
     } 
    } 
関連する問題