1

いくつか問題があります。自分のマシンで Outlook 2010 から完全なグローバル アドレス リストを受信する必要があります。私はすべてのフィールドを意味します:

役職、「ファーストネーム」、「ミドルネーム」、「ラストネーム」、「サフィックス」、「会社」、「部署」、「役職」、「ビジネスストリート」、「ビジネスストリート2」、「ビジネスストリート3」 ,"事業所の市区町村","事業所の州","事業所の郵便番号","事業所の国/地域","本拠地","自宅

Outlook から GAL をエクスポートしようとすると、このリストを取得できます。しかし、どうすればC#でこれを行うことができますか?

私はこのようにしようとしています:

        Application oApp = new Application();
        NameSpace oNS = oApp.GetNamespace("mapi");
        oNS.Logon("Name", "Pass", false, true);
        AddressLists oDLs = oNS.AddressLists;
        AddressList oGal = oDLs["Global Address List"];            
        string sDL = "TestDL";
        AddressEntries oEntries = oGal.AddressEntries;
        AddressEntry oDL = oEntries[sDL];    
        oEntries = oDL.Members;
        AddressEntry oEntry = default(AddressEntry);    
        for (i = 1; i <= oGal.AddressEntries.Count ; i++  )
        {
            oEntry = oGal.AddressEntries[i];
            //listBox1.Items.Add(oEntry.Name);
        }

ただし、すべての AddressEntries[i] には、名前、電子メールのみが含まれ、他には何も含まれていません。

4

1 に答える 1

1

使用可能な MAPI プロパティを取得するには、AddressEntry.PropertyAccessor を使用します。たとえば、最初の名前を取得するには、PR_GIVEN_NAME_W プロパティ (= 0x3A06001F) を取得します。MFCMAPI またはOutlookSpyを使用してアドレス帳オブジェクトを調べて、利用可能なものとプロパティ タグを確認してください。

givenName = AddressEntry.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A06001F")
于 2012-07-06T17:05:49.707 に答える