2

Outlook オブジェクト モデルを使用してグローバル アドレス帳を調べることはできますが、csharp の Outlook オブジェクト モデルを使用すると、個人の次のプロパティを取得できます。

市、州、国/地域 エイリアス タイトル 電話番号

AddressEntry オブジェクトでこれらのプロパティが見つからないようです。


編集:私はここで報奨金を始めました。LDAPクエリを使用してこれを機能させましたが、非常に面倒です。Outlook がシンプルな API でこれをサポートしていないことにショックを受けました。他の誰かがそれを機能させたか、または Outlook がこれをサポートしていない理由を説明/正当化できるかどうかを確認したかった

4

4 に答える 4

5

Microsoft.Office.Interop.Outlook
の使用 AddressEntry オブジェクトで ExchangeUser オブジェクトと GetExchangeUser メソッドを使用する必要があります。

using System;
using Microsoft.Office.Interop.Outlook;
static class Program
{
    static void Main(string[] args)
    {
        ExchangeUser oExUser;
        Application app = new Microsoft.Office.Interop.Outlook.Application();
        foreach (AddressList addressList in app.Session.AddressLists)
        {
            if (addressList.Name == "Global Address List")
            {
                foreach (AddressEntry item in addressList.AddressEntries)
                {
                    Console.WriteLine(item.Address);
                    oExUser = item.GetExchangeUser();
                    if (oExUser != null) 
                    {
                        Console.WriteLine(oExUser.FirstName);
                        Console.WriteLine(oExUser.LastName);
                        Console.WriteLine(oExUser.StreetAddress);
                        Console.WriteLine(oExUser.CompanyName);
                        Console.WriteLine(oExUser.Department);
                        Console.WriteLine(oExUser.OfficeLocation);
                        Console.WriteLine(oExUser.JobTitle);
                    }
                    Console.WriteLine();
                }
            }
        }
        Console.Read();
    }
}
于 2009-12-04T02:04:09.763 に答える
1

いつものように、Outlook オブジェクト モデルを使用する必要がある場合は、Redemption ライブラリを使用することをお勧めします。(C# からの COM Interop が関係しますが、それは問題にはなりません。) RDO (Redemption Data Objects)ライブラリを見て、オブジェクトRDOAddressBookとオブジェクトを調べてくださいRDOAddressEntry。オブジェクトは、RDOAddressEntry探しているすべてのプロパティを公開します。

Redemption ライブラリは、Outlook のセキュリティに関連する問題を回避し、通常の OOM で公開されるよりも多くのプロパティへのアクセスを許可します。残念ながら、私はまだメール処理のためだけにライブラリを使用しているため、特定の問題を解決するための実用的なサンプルを提供することはできません. ただし、Redemption サイトには多くのコード例があります。

于 2009-12-08T17:36:03.400 に答える
1

あなたはRDOと使い分けていますか?アドレスデータを含め、Outlook がブロックする多くの機能を提供します

RDO & C#

于 2009-11-28T13:35:38.170 に答える
0

他の質問で示唆されているように、アドレス帳の下にある LDAP データベースに直接アクセスする必要がある場合があります。

于 2009-11-28T05:34:28.763 に答える