PST(个人存储表)文件是管理 Outlook 数据的重要组成部分,方便存储电子邮件、联系人、日历和其他项目。在 C# .NET 开发领域,创建和管理存储文件的过程对于各种应用程序至关重要。
在本文中,我们将探讨如何使用 C# .NET 创建 PST 文件。我们将介绍如何创建空的 PST 存储、添加文件夹和子文件夹、合并标准和常规文件夹,最后将电子邮件和 Outlook 项目添加到 PST 文件。
Aspose.Email 是用于轻松的开发 email 功能的应用程序的一组控件,基于 ASP.NET 的Web应用、Web服务和Windows 应用。支持 Outlook PST, EML, MSG, and MHT 格式. 允许开发者直接与 SMTP, POP, FTP, 和 MS Exchange 服务器进行工作。支持邮件合并、行事历、定制邮件标题和内容、嵌入文件等,Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
用于创建和填充 PST 文件的 C# API
为了在 C# 中处理 PST 格式的存储文件,我们将使用Aspose.Email for .NET。这个全面的库是专为 .NET 开发人员设计的,提供处理电子邮件相关数据的强大工具。借助其直观的 API,开发人员可以轻松创建、读取和操作 PST 存储结构,包括添加文件夹、子文件夹和标准 Outlook 文件夹。该库通过提供解析、创建、发送、接收和转换各种格式(如 MSG、EML 和 MHTML)的电子邮件的功能,简化了电子邮件消息处理。Aspose.Email 使开发人员能够在其 .NET 应用程序中有效地管理与电子邮件相关的任务,增强功能和性能,同时为最终用户提供卓越的电子邮件处理功能。
为了利用 API 的强大功能,您可以下载其 DLL 或使用以下命令从NuGet安装它:
PM> Install-Package Aspose.Email
创建最小空 PST 存储
首先,让我们创建一个空的个人存储。这涉及初始化一个没有任何项目的 PST 文件。下面的代码示例将向您展示如何为名为“sample.pst”的新文件设置基本结构,该文件具有 Unicode 文件格式版本。要创建新的 PST 文件,请使用 PersonalStorage.Create方法。
// Initialize the PersonalStorage instance using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode)) { // Add your code for further operations }
注意:最小 pst 为 256 Kb,包含一个根文件夹和一个已删除邮件文件夹。
添加文件夹和子文件夹
一旦我们有了空的 PST 存储,下一步就是添加文件夹和子文件夹以有效地组织我们的数据。请考虑以下小节并尝试以下代码示例来执行任务。
添加标准文件夹
使用 Aspose.Email 可以轻松添加收件箱、发件箱、已发送邮件、草稿等标准文件夹。以下代码示例演示了如何在名为“sample.pst”的 PST 中创建一个名为“收件箱”的新文件夹。该代码使用PersonalStorage类打开 PST 文件,然后调用CreatePredefinedFolder()方法为入站项目创建标准文件夹。该文件夹是使用预定义文件夹类型StandardIpmFolder.inbox创建的,通常代表电子邮件客户端中的收件箱文件夹。
- 初始化一个新的PersonalStorage对象。
- 使用PersonalStorage实例 (pst)的CreatePredefinedFolder方法创建一个名为“Inbox”的标准文件夹,并指定文件夹类型StandardIpmFolder.Inbox以表明它是一个收件箱文件夹。
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode)) { // Create a standard folder (Inbox) var inboxFolder = pst.CreatePredefinedFolder("Inbox", StandardIpmFolder.Inbox); }
以下列表包含可添加到新 PST 文件的标准文件夹:
- 收件箱
- 发送的邮件
- 日历
- 联系方式
- 杂志
- 笔记
- 任务
- 同步问题
- 垃圾邮件
- RSS订阅
添加常规文件夹
除了标准文件夹外,用户还经常创建具有特定名称的自定义文件夹,以便更好地组织电子邮件。以下代码片段显示了如何将自定义文件夹添加到 PST 文件的根目录。
- 初始化一个新的PersonalStorage对象。
- 使用PersonalStorage实例的 RootFolder 属性的AddSubFolder方法创建自定义文件夹。
- 创建“自定义文件夹”后,您可以再次使用AddSubFolder方法在其中创建子文件夹。将子文件夹的所需名称作为参数提供给AddSubFolder方法。
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode)) { // Create a custom folder var someFolder = pst.RootFolder.AddSubFolder("SomeFolder"); // Create a subfolder to the "Custom Folder" var subFolder = customFolder.AddSubFolder("SubFolder"); }
添加电子邮件和 Outlook 项目
有了结构之后,我们现在可以用电子邮件和其他 Outlook 项目填充我们的 PST 文件。这涉及创建电子邮件、约会、联系人、任务等,并将它们添加到文件中的相应文件夹中。让我们考虑几个例子。
添加新电子邮件
下面的代码示例将向您展示如何将新电子邮件添加到 PST 文件中的“收件箱”文件夹。代码涉及以下步骤:
- 初始化一个新的PersonalStorage对象。
- 使用PersonalStorage实例的 RootFolder 属性上的GetSubFolder方法检索收件箱文件夹。
- 实例化一个新的MapiMessage对象。
- 使用inboxFolder 对象上的AddMessage方法将新创建的消息(消息)添加到收件箱文件夹。
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode)) { // Access the folder to add items var inboxFolder = pst.RootFolder.GetSubFolder("Inbox"); // Create a new message var message = new MapiMessage("from@example.com", "to@example.com", "Subject", "Body"); // Add the message to the Inbox folder inboxFolder.AddMessage(message); }
添加 Outlook 项目
以下代码示例允许您将联系人添加到新的 PST 文件。它概述了创建新的个人存储文件、向其中添加标准联系人文件夹、从 VCF 文件加载联系人以及将联系人添加到联系人文件夹的过程。代码涉及以下步骤:
- 初始化一个新的PersonalStorage对象。
- 使用CreatePredefinedFolder方法创建一个标准文件夹,并指定文件夹类型StandardIpmFolder.Contacts来指示它是联系人文件夹。
- 使用MapiContact.FromVCard方法从 VCF 文件加载联系人。此方法创建一个表示联系人信息的MapiContact对象。
- 使用AddMapiMessageItem方法将加载的联系人添加到联系人文件夹。
using (var pst = PersonalStorage.Create("sample.pst", FileFormatVersion.Unicode)) { // Create a standard folder (Contacts) var contactsFolder = pst.CreatePredefinedFolder("My Contacts", StandardIpmFolder.Contacts); // Load a contact from vcf file var contact = MapiContact.FromVCard("Contact.vcf"); // Add the contact to the folder contactsFolder.AddMapiMessageItem(contact); }
总结
在本教程中,我们探讨了如何使用 C# .NET 和 Aspose.Email 库创建 PST 文件。从创建空的 PST 存储到添加文件夹、子文件夹和各种 Outlook 项目,该库提供了一套全面的 PST 文件操作功能。将这些功能集成到您的 C# .NET 应用程序中,使您能够有效地管理 Outlook 数据,从而增强软件解决方案的稳健性和多功能性。
除此之外,该库还提供了用于创建、提取、解析、转换和操作电子邮件的广泛功能,并提供全面的文档和代码示例,以简化集成过程,使开发人员可以轻松地在其 .NET 应用程序中实现与电子邮件相关的解决方案。