2017-03-07 11 views
2

私はデフォルトの連絡先フォルダ内のすべての連絡先の電子メールアドレスを取得しようとしています。これまで私は次のコードを使用して成功しました。MicrosoftのEWS API 2.0を使用して連絡先の電子メールアドレスを取得する方法は?

var contactsfolder = ContactsFolder.Bind(service, WellKnownFolderName.Contacts, 
        new PropertySet(BasePropertySet.IdOnly, FolderSchema.TotalCount)); 
var view = new ItemView(contactsfolder.TotalCount) 
    { 
     PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, ContactSchema.DisplayName, ContactSchema.EmailAddress1) 
    }; 
var contactItems = service.FindItems(WellKnownFolderName.Contacts, view); 

有効なSMTP電子メールアドレスではない電子メールが届くことがあります。

/o=WWE/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=e20105f2e8434d9ea58efc56e8b5a173-John Cena 

私の質問は、上記のもの(一般名)から有効なメールアドレスを取得するにはどうすればよいですか?

答えて

1

FindItemsはパフォーマンス上の理由からネイティブアドレス(例:EXアドレス)を返します。同じ項目にGetItemリクエスト(例:LoadまたはLoadProperites from項目)を作成すると、ExchangeはEXアドレスをSMTPアドレスに変換する必要があります。

そうでないあなたも、あなたがから削除されたユーザーの連絡先を持っている場合は、1つの例外がある(限りそれはGALにリストされているよう)EXアドレスに

をResolveName https://msdn.microsoft.com/en-us/library/office/dn645423(v=exchg.150).aspxを使用して、それを自分で行うことができます彼らが会社を去り、そのメールボックスが削除されたため、グローバルアドレス一覧が表示されます。 EXアドレスだけがGALから追加された連絡先に格納されているため、これをSMTPアドレスに変換することはできません。

+0

ありがとうございます@Glen ResolveNameメソッドを使用して解決しましたが、グローバルアドレス帳に同じ名前の複数の人がいる場合は効果がありません。 –

関連する問題