2016-02-03 42 views
0

我正在使用MS office 2010.我需要Outlook通訊組列表中的成員詳細信息。來自非默認帳戶分配列表的地址

我的Outlook配置了兩個電子郵件ID。一個是客戶另一個是公司。

我在Excel中有一個代碼來檢查通訊組列表並將詳細信息導入到Excel中。

我能夠從分配列表中導入默認郵件ID的詳細信息。我無法從其他電子郵件中選擇分發列表。它試圖在默認情況下搜索DL並選擇錯誤的名稱。

這裏是我的代碼

Dim olApp As Outlook.Application 
Dim olNS As Outlook.Namespace 
Dim olAL As Outlook.AddressList 
Dim olEntry As Outlook.AddressEntry 
Dim olMember As Outlook.AddressEntry 
Dim lMemberCount As Long 
Dim objMail As Outlook.MailItem 

Set olApp = Outlook.Application 
Set olNS = olApp.GetNamespace("MAPI") 
Set olAL = olNS.AddressLists("Global Address List") 

Set objMail = olApp.CreateItem(olMailItem) 

' enter the list name 
Set olEntry = olAL.AddressEntries(".DL IS Support") 

' get count of dist list members 
lMemberCount = olEntry.Members.Count 
+0

做了上述代碼的任何事情,或者我們需要修改/添加任何東西。有人可以建議請。 – user2717144

+0

您的意思是您需要從您的個人資料中的其他Exchange帳戶獲取GAL容器? –

+0

是的,在搜索時,總是從一個GAL搜索,而不是從另一個搜索。檢查其他GAL我在上面的代碼中需要修改的位置和內容。 – user2717144

回答

0

Outlook對象模型不會讓您解決針對特定AB容器的名稱。您需要使用Extended MAPI(C++或Delphi),該擴展MAPI通過針對該容器的內容表創建PR_ANR限制(​​3210)。

如果使用Redemption是一個選項,它暴露RDOAddressListResolveName/ResolveNameEx允許根據給定容器解析名稱的方法。該容器可以從RDOSesion.AddressBook.AddressListsRDOExchangeAccount.GAL中檢索。 RDOExchangeAccount對象可以從RDOSession.Accounts集合中檢索。