在搜索一小時後嘗試我的運氣。訪問多個Outlook帳戶的全局地址列表
假設您擁有兩個活動帳戶的Outlook 2010:[email protected],[email protected]。
你需要拉全局地址列表的[email protected]:
using Microsoft.Office.Interop.Outlook;
Application app = new Application();
NameSpace ns = app.GetNamespace("MAPI");
ns.Logon("", "", false, true);
AddressList GAL = ns.AddressLists["Global Address List"];
foreach (AddressEntry oEntry in GAL.AddressEntries)
{
// do something
}
這裏的問題是,GAL可以屬於任何一個帳戶,這不是明顯的,至少通過閱讀MSDN,如何你想知道你真的想使用哪個賬戶。
如果我們將經歷這樣,所有列表:
foreach (AddressList lst in ns.AddressLists)
{
Console.WriteLine("{0}, {1}", lst.Name, lst.Index);
}
我們可以看到,有兩個項目名爲「全球地址列表」,命名爲「聯繫人」等不同的指標兩個條目,但它的仍不清楚哪一個屬於哪個帳戶。
對於文件夾,它的完成相當不錯,因爲你可以使用結構類似:
ns.Folders["[email protected]"].Folders["Inbox"];
,但我無法找出類似的機制AddressLists。
任何幫助表示讚賞。
謝謝。
請問這個例子幫助:http://msdn.microsoft.com/en-us/library/ff184631.aspx – 2013-03-12 20:00:04
它可以幫助如果我能在納秒項目獲取商店.Accounts,所以我可以使用它來匹配AddressList上的PR_EMSMDB_SECTION_UID。帳戶可以有多個商店,是不是? – ilgor 2013-03-12 21:02:13
Dmitry也有關於使用C++/Delphi的答案,他已經刪除了它,但是我想知道如何在C#.NET上做到這一點,如果可能的話。 – ilgor 2013-03-12 21:03:24