如何使用MAPI获取Outlook联系人组?

Imp*_*rks 4 c# mapi outlook contacts

在Outlook 2010中,您可以创建联系人并将其添加到组.有没有办法获得这些群组及其中的联系人列表?以下是我访问联系人的方式:

var outlook = new Outlook.Application().GetNamespace("MAPI");
var folder = outlook.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
foreach (var curr in folder.Items.OfType<Outlook.ContactItem>())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

不是指默认联系人文件夹,例如"联系人"和"建议的联系人".

Ser*_*nov 7

联系人组由DistListItem Interface表示.DistListIteminterface具有迭代组成员的MemberCount属性和GetMember()方法.

var outlook = new Application().GetNamespace("MAPI");
var folder = outlook.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
foreach (var curr in folder.Items.OfType<DistListItem>())
{
    Console.WriteLine(curr.DLName);

    for (int memberIdx = 1; memberIdx <= curr.MemberCount; memberIdx++)
    {
        var member = curr.GetMember(memberIdx);
        Console.WriteLine(member.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)