2011-09-09 50 views
0

私は名前が書かれているtxtファイルを読む方法を見つけようとしています。そして、プログラムはアドレス帳(OutlookやWindowsの他のアドレス帳)で検索して解決するべきですその名前をSMTPアドレスとして指定します。C#:ExchangeアドレスをSMTPに、またはWindowsの連絡先からSMTPメールを受け取る別の方法は?

経由でExchange形式のメールアドレスに簡単にアクセスできますが、SMTPアドレスのみをサポートするMailMessageオブジェクトとしてメールを作成するため、これらの処理方法はわかりません。

私はさまざまな方法を試してみた: 1-Microsoft.Communications.Contact:

`ContactManager cm = new ContactManager();` 

`List<Contact> contatti = (List<Contact>)cm.GetContactCollection();` 

二行目は私の原因とNullReferenceExceptionを。

2-CDOライブラリ:AddressEntryなどの重要なクラスがないため、何も入手できません。

3-MAPIライブラリ(microsoft.comからダウンロードしたCDO 1.2):インターフェイスのみであり、何もインスタンス化できません。

提案がありますか?

+0

あなたはSMTPメールを取得するためにADを照会することができますが、あなたは、ドメインのようなユニークな識別子のいくつかの種類を必要とし、それ以外の場合は重複があります。 –

答えて

0

ベンは示唆しているように、あなたの名前が曖昧ではない問題にぶつかることがあります。あなたはこれのために準備する必要があります。

この問題以外にも、ここでは2つのオプションがあります。情報のクエリ(System.DirectoryServicesまたはさらに優れたSystem.DirectoryServices.AccountManagementを使用)。返されたエンティティから、proxyAddressesプロパティを読み取ります。このプロパティには、ユーザーまたは連絡先のアドレスが含まれます。

Exchange 2007以降を実行している場合は、EWS Managed APIを使用してExchange経由で名前を解決することもできます。 ResolveNamedメソッドを使用します。http://msdn.microsoft.com/en-us/library/exchangewebservices.exchangeservicebinding.resolvenames(v=exchg.140).aspx

EWSは、APIの管理 - ダウンロード:http://www.microsoft.com/download/en/details.aspx?id=13480

EWSマネージAPI - SDK:http://msdn.microsoft.com/en-us/library/dd633710(v=exchg.80).aspx

関連する問題