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

C# 如何使用MAPI获取Outlook联系人组?,c#,outlook,contacts,mapi,C#,Outlook,Contacts,Mapi,在Outlook 2010中,您可以创建联系人并将其添加到组中。有没有办法得到这些团体的名单和其中的联系人?以下是我访问联系人的方式: var outlook = new Outlook.Application().GetNamespace("MAPI"); var folder = outlook.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts); foreach (var curr in folder.Items.OfTy

在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>())
{
    ...
}
var outlook=new outlook.Application().GetNamespace(“MAPI”);
var folder=outlook.GetDefaultFolder(outlook.OlDefaultFolders.olFolderContacts);
foreach(文件夹.Items.OfType()中的var curr)
{
...
}

I表示默认联系人文件夹,如“联系人”和“建议联系人”。

联系人组由表示
DistListItem
接口有
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);
    }
}
var outlook=new Application().GetNamespace(“MAPI”);
var folder=outlook.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
foreach(文件夹.Items.OfType()中的var curr)
{
控制台写入线(当前名称);
对于(int memberIdx=1;memberIdx,您可以尝试此选项

            DataTable dt = new DataTable();
            dt.Columns.Add("FirstName");
            dt.Columns.Add("MiddleName");
            dt.Columns.Add("LastName");
            dt.Columns.Add("Email");

            Microsoft.Office.Interop.Outlook.Items OutlookItems;
            Microsoft.Office.Interop.Outlook.Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();
            MAPIFolder Folder_Contacts = (MAPIFolder)outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
            OutlookItems = Folder_Contacts.Items;

            foreach (var item in OutlookItems)
            {
                var contact = item as ContactItem;
                if (contact != null)
                {
                    DataRow dr = dt.NewRow();
                    dr["FirstName"] = contact.FirstName;
                    dr["MiddleName"] = contact.MiddleName;
                    dr["LastName"] = contact.LastName;
                    dr["Email"] = contact.Email1Address;
                    dt.Rows.Add(dr);
                }
            }

关于团队成员的联系方式,如手机号码和公司详细信息如何?@Shyamsundarshah,这似乎是另一个问题。可以单独提问。