2011-06-19 18 views
3

Exchange Server 2010でExchange Webサービスを使用する場合、セカンダリ電子メールアドレスを使用してユーザーのプライマリSMTPアドレスを検索する必要があります。セカンダリ電子メールアドレスを使用してプライマリSMTPアドレスを検索するEWS

ExchangeService.ResolveName(emailAddress)を使用しようとしています。しかし、ResolveName()はセカンダリ電子メールアドレスをプライマリ電子メールアドレスに一致させていないようです。ユーザーの姓と名を渡すと、プライマリアドレスが検索されます。しかし、私はセカンダリ電子メールを使用して一致する必要があります。

何か間違っていますか?セカンダリアドレスをプライマリアドレスとどのように一致させることができますか?

Tedderz

答えて

2

smtp:[email protected]という文字列でResolveNameを呼び出す必要があります。 ResolveNameが、このように呼び出されたときにプライマリSMTPアドレス以外のものを返すかどうかはわかりません。しかし、私はメールボックスのタイプをちょうどチェックしました。次のコードは私のために働くようです。

private string GetPrimarySmtpAddress(ExchangeService service, string email) 
{ 
    foreach (NameResolution resolution in service.ResolveName("smtp:" + email)) 
    { 
     if (resolution.Mailbox.MailboxType == MailboxType.Mailbox) 
     { 
      return resolution.Mailbox.Address; 
     } 
    } 
    return ""; 
} 

もちろん、必要に応じてエラー処理を追加してください。

+0

厳密には当てはまりませんが、ResolveNameの呼び出しで他の接頭辞を使用できます。 X500。 – donovan

関連する問題