个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

Aspose 使用教程:使用 C# 在 Outlook PST 文件中处理分发列表

原创
软件开发
来源:Aspose
Aspose
C#
email
网络通讯
2023-11-29
Aspose
C#
email
网络通讯


• 处理 Outlook Distribution List 的 C# API

• 从 PST 读取分发列表

• 使用分发列表

• 在 Outlook PST 文件中创建分发列表


Outlook 有许多强大的功能,其中之一就是创建和管理分发列表。这些列表允许用户轻松地向多个收件人发送电子邮件,是简化通信的重要工具。在本文中,我们将引导你了解在 Outlook PST 文件中处理分发列表所需的知识和工具。


处理 Outlook 分发列表的 C# API

Aspose.Email for .NET是一个功能强大的.NET库,它为处理Outlook PST文件提供了广泛的功能。您可以使用 Aspose.Email 读取、写入和操作 PST 文件,以及处理各种元素,如电子邮件、联系人、日历项,当然还有分发列表。在开始使用 C# 处理 Outlook PST 文件中的分发列表之前,您需要在项目中包含 Aspose.Email 库。您可以从 Aspose 网站下载或通过 NuGet 安装该库。


Install-Package Aspose.Email


一旦在项目中安装了该库,就可以开始使用它与分发列表进行交互。


从 PST 中读取分发列表

要使用存储在 Outlook PST 文件中的分发列表,你需要找到存储这些列表的文件夹,并将它们与普通联系人区分开来。在本节中,我们将向你展示如何使用 C# 从 PST 文件读取分发列表并识别它们。


using Aspose.Email.Storage.Pst;

using Aspose.Email.Mapi;


// Load the PST file

using (var pst = PersonalStorage.FromFile("your.pst"))

{

    // Get the Contacts folder

    var folder = pst.GetPredefinedFolder(StandardIpmFolder.Contacts);


    if (folder != null)

    {

        foreach (var msgInfo in folder.EnumerateMessages())

        {

            // Check if the message has the "IPM.DistList" message class

            if (msgInfo.MessageClass == "IPM.DistList")

            {

                // Extract the distribution list

                var distList = (MapiDistributionList)pst.ExtractMessage(msgInfo).ToMapiMessageItem();

                

                // Now, you can work with the distribution list

                // (e.g., access its members, display its properties, or make modifications)

            }

        }

    }

}


在上面的代码中,我们演示了如何从 Outlook PST 文件中读取分发列表。以下是具体步骤:


• 首先,我们使用 PersonalStorage.FromFile 方法打开 PST 文件。

• 我们使用 pst.GetPredefinedFolder(StandardIpmFolder.Contacts) 来检索内置的 "联系人 "文件夹,分发列表通常存储在该文件夹中。

• 我们使用 folder.EnumerateMessages() 循环查看 "联系人 "文件夹中的邮件。

• 我们检查每封邮件的 MessageClass 属性,以识别分发列表。分发列表的消息类为 IPM.DistList。

• 识别出分发列表后,我们使用 pst.ExtractMessage(msgInfo) 将其提取出来,并转换为 MapiDistributionList 对象,以便进一步处理。


现在,您可以访问分发列表,并处理其成员、显示其属性或进行任何必要的修改。


处理分发列表

您可以对分发列表执行各种操作,例如


• 读取成员:检索分发列表的成员。

• 添加成员:向分发列表添加新成员。

• 删除成员:从分发列表中删除成员。

• 更新成员:修改成员的属性。


下面是一个如何读取分发列表成员的简单示例:


foreach (var member in distributionList.Members)

{

    Console.WriteLine($"Name: {member.DisplayName}, Email: {member.EmailAddress}");

}


在 Outlook PST 文件中创建分发列表

在许多情况下,您可能需要在 Outlook PST 文件中创建分发列表。分发列表或联系人组可让您方便地分组和管理联系人,以便进行批量电子邮件通信。Aspose.Email 简化了使用 C# 在 PST 文件中创建分发列表的过程。在本节中,我们将指导您如何在 PST 文件中创建分发列表。


using Aspose.Email.Storage.Pst;

using Aspose.Email.Mapi;


// Load the PST file

using (var pst = PersonalStorage.FromFile("your.pst"))

{

    // Get the Contacts folder

    var folder = pst.GetPredefinedFolder(StandardIpmFolder.Contacts);


    if (folder != null)

    {

        // Create contacts

        var contact1 = new MapiContact("Susanne Nielsen", "SusanneNielsen@example.com");

        var contact2 = new MapiContact("Lars Rosing", "LarsRosing@example.com");


        // Add contacts to the Contacts folder

        var idContact1 = folder.AddMapiMessageItem(contact1);

        var idContact2 = folder.AddMapiMessageItem(contact2);


        // Create distribution list members

        var member1 = new MapiDistributionListMember(contact1.NameInfo.DisplayName, contact1.ElectronicAddresses.Email1.EmailAddress)

        {

            EntryIdType = MapiDistributionListEntryIdType.Contact,

            EntryId = Convert.FromBase64String(idContact1)

        };


        var member2 = new MapiDistributionListMember(contact2.NameInfo.DisplayName, contact2.ElectronicAddresses.Email1.EmailAddress)

        {

            EntryIdType = MapiDistributionListEntryIdType.Contact,

            EntryId = Convert.FromBase64String(idContact2)

        };


        // Create a collection of distribution list members

        var members = new MapiDistributionListMemberCollection

        {

            member1,

            member2

        };


        // Create the distribution list

        var distributionList = new MapiDistributionList("Contact list", members)

        {

            Body = "Distribution List Body",

            Subject = "Sample Distribution List using Aspose.Email"

        };


        // Add the distribution list to the Contacts folder in the PST

        folder.AddMapiMessageItem(distributionList);

    }

}


在上面的代码片段中,我们提供了在 Outlook PST 文件中创建分发列表的分步指南:


• 首先,使用 PersonalStorage.FromFile 加载目标 PST 文件。

• 使用 GetPredefinedFolder(StandardIpmFolder.Contacts) 方法读取要存储分发列表的联系人文件夹。

• 为要添加到分发列表的人员创建 MapiContact 对象。在本例中,我们创建了 contact1 和 contact2。

• 使用 AddMapiMessageItem 方法将联系人对象添加到联系人文件夹。这会为每个联系人生成唯一的条目 ID。

• 为每个联系人创建 MapiDistributionListMember 并指定必要的详细信息,包括联系人的显示名称和电子邮件地址。

• 将分发列表成员存储在 MapiDistributionListMemberCollection 中。

• 创建 MapiDistributionList 对象,提供名称、正文和主题。将之前创建的成员集合附加到分发列表。

• 使用 AddMapiMessageItem 方法将分发列表添加到 PST 中的联系人文件夹。


现在,您已经在 Outlook PST 中成功创建了一个分发列表。该功能对于在电子邮件管理应用程序中自动创建和管理联系人组特别有用。


结论

使用 C# 和 Aspose.Email 在 Outlook PST 文件中处理分发列表是一个简单明了的过程。该库为与 PST 文件交互提供了一套强大的功能,可以轻松管理分发列表、读取其成员,甚至创建新列表。在这篇博文中,我们介绍了在 Outlook PST 文件中使用它们的基本方法,但使用 Aspose.Email 还可以做更多事情。无论您是在构建电子邮件管理工具,还是需要自动执行某些与电子邮件相关的任务,Aspose.Email 都是 .NET 开发人员的宝贵库。您可以免费咨询您感兴趣的问题,也可以在我们的网站上寻求可能出现的问题的答案。要了解最新的工具和服务,请联系我们。


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508