借助Aspose.Email,使用 C# .NET 创建 PST 文件并填充内容

news2025/2/24 11:02:45

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支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.Email 最新下载

用于创建和填充 PST 文件的 C# API

为了在 C# 中处理 PST 格式的存储文件,我们将使用Aspose.Email for .NET。这个全面的库是专为 .NET 开发人员设计的,提供处理电子邮件相关数据的强大工具。借助其直观的 API,开发人员可以轻松创建、读取和操作 PST 存储结构,包括添加文件夹、子文件夹和标准 Outlook 文件夹。该库通过提供解析、创建、发送、接收和转换各种格式(如 MSG、EML 和 MHTML)的电子邮件的功能,简化了电子邮件消息处理。Aspose.Email 使开发人员能够在其 .NET 应用程序中有效地管理与电子邮件相关的任务,增强功能和性能,同时为最终用户提供卓越的电子邮件处理功能。

为了利用 API 的强大功能,您可以下载其 DLL 或使用以下命令从NuGet安装它:

在 C# 中创建 PST 文件

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创建的,通常代表电子邮件客户端中的收件箱文件夹。

  1. 初始化一个新的PersonalStorage对象。
  2. 使用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 文件的根目录。

  1. 初始化一个新的PersonalStorage对象。
  2. 使用PersonalStorage实例的 RootFolder 属性的AddSubFolder方法创建自定义文件夹。
  3. 创建“自定义文件夹”后,您可以再次使用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 文件中的“收件箱”文件夹。代码涉及以下步骤:

  1. 初始化一个新的PersonalStorage对象。
  2. 使用PersonalStorage实例的 RootFolder 属性上的GetSubFolder方法检索收件箱文件夹。
  3. 实例化一个新的MapiMessage对象。
  4. 使用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 文件加载联系人以及将联系人添加到联系人文件夹的过程。代码涉及以下步骤:

  1. 初始化一个新的PersonalStorage对象。
  2. 使用CreatePredefinedFolder方法创建一个标准文件夹,并指定文件夹类型StandardIpmFolder.Contacts来指示它是联系人文件夹。
  3. 使用MapiContact.FromVCard方法从 VCF 文件加载联系人。此方法创建一个表示联系人信息的MapiContact对象。
  4. 使用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 应用程序中实现与电子邮件相关的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1842237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

江苏新世纪信息科技有限公司

NCT是国内专业从事信息化人才培训、咨询,以及企业级数字化培训平台建设,企业内训课程、课件制作;工业企业智能制造诊断和信息化规划服务;信息化建设项目的运维服务和解决方案为一体的标准应用服务商。NCT是中国ITSS实训基地的运营…

云专线组网方案的特性和实施要素

云专线组网方案是指企业通过专用的网络连接,将其内部网络与云服务商的数据中心直接相连,从而实现高速、安全、稳定的云资源访问。云专线通常提供比公共互联网更优的网络性能,包括更低的延迟、更高的带宽和更强的安全性。以下是云专线组网方案…

去中心化衍生品协议内卷,ZKX 能否通过差异化道路突出重围?

去中心化衍生品赛道目前从协议类型来看,主要有两种解决方案: 以 GMX 为代表的 Vault 模式,LP 作为交易者的对手盘,由 Orcale 喂价决定交易价格。 以 dYdX 为代表的订单薄模式,链下撮合链上结算。 这两种解决方案虽然…

法国电信集团高层莅临美格智能参观交流,共商行业未来

6月19日,世界500强法国电信Orange集团高层一行莅临美格智能深圳总部参观交流。美格智能董事长王平、副总裁兼西安产品线总经理李小兵携公司管理层对Orange团队的到访表示热烈欢迎,双方就FWA市场的发展、双方之间前期合作情况以及未来规划进行了会谈与交流…

qmt量化交易策略小白学习笔记第42期【qmt编程之期货数据--如何获取历史主力合约--内置python】

qmt编程之获取期货数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取历史主力合约 …

Hive数据锁问题处理

在测试环境有定时任务会定期将flume采集的数据load到hive表中,在查看yarn application过程中发现load操作没有执行,且后续的任务在上一个任务执行结束后很久才开始。感觉像是阻塞一样,于是手动执行相关脚本,发现也是会卡住&#x…

分享vs code十大好用的插件

1.Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 将 VS Code 界面改成简体中文。 2.PDF Viewer 在VS Code 中打开 PDF文件。 3.TODO Highlight 这个扩展会突出显示您的待办事项注释,并提醒存在未完成的注释或任务。 该扩展附带了内…

基于SpringBoot+Mysql+Eclipse开发的仓库管理系统

基于SpringBootMysqlEclipse开发的仓库管理系统 项目介绍💁🏻 在当今竞争激烈的商业环境中,仓库管理系统的效率和准确性对于企业的运营至关重要。随着企业规模的扩大和商品种类的增加,传统的仓库管理方式已经无法满足高效、精准的…

Android面试题 之App性能优化的卡顿监控和卡顿优化

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 卡顿优化 这里主要介绍卡顿优化方面的布局优化 布局优化 1、 在主线程中,加载SP,或者是缓存加载,JSON解析…

【Oracle APEX开发小技巧2】在不通过类型转换的前提下使用Oracle APEX自带的格式掩码实现数值的精确展现

在日常APEX开发中,你也许会遇到过这种情况,输入两个数值,通过相除得到比率,但是如果比率小于1,小数点前的0往往会被省略,例如“0.32”会展示为“.32”,不符合正常的表达。 原来的效果&#xff1…

海量数据处理利器 Roaring BitMap 原理介绍

作者:来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时,…

【数据结构】【版本1.3】【线性时代】——栈

快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、栈的概念二、栈的模拟实现2.1 定义2.2 初始化2.3 销毁2.4 压栈2.5 判空2.6 出栈2.7 获取栈顶元素2.8…

一分钟生成论文全文,这款AI论文神器你不会还不知道吧?

毕业季写论文就选范文喵AI论文助手。范文喵V2.0主要包括了论文范文、选题分析、开题报告、任务书的写作、以及论文答辩PPT、论文解读等功能。此外,我们也会在近期进一步优化范文喵论文助手,写作效果更好的V3.0版本预计将于今年7月份和大家见面&#xff0…

Ps:动作面板

Ps菜单:窗口/动作 Window/Action 快捷键:Alt F9 动作面板 Action Panel提供了一种自动化的方法,可以记录、播放、编辑和管理一系列的 Photoshop 操作。使用动作可以大大提高工作效率,特别是在处理重复性任务时。 ◆ ◆ ◆ 常用…

WPF 深入理解二、布局

布局与控件 常用得布局属性 HorizontalAlignment:用于设置元素的水平位置VerticalAlignment: 用于设置元素的垂直位置Margin: 指定元素与容器的边距Height: 指定元素的高度Width: 指定元素的宽度WinHeight/winWidth:指定元素的最小高度和宽度MaxHeight/MaxWidth: 指定元素的最…

AD域离线破解新思路:Trustroasting和TimeRoasting

简介 近期Tom Tervoort发表了白皮书《TIMEROASTING, TRUSTROASTING AND COMPUTER SPRAYING》并在Github发布了名为Timeroast的工具包,其中介绍了几种新的攻击思路TimeRoasting、Trustroasting和计算机账户密码喷洒,本篇文章主要对TimeRoasting和Trustro…

主流电商平台API接口【京东商品详情按关键字搜索商品按图搜索京东商品(拍立淘)获得店铺的所有商品】

主流电商平台商品接口在电商企业中的应用可以帮助企业实现信息同步、库存管理、订单处理、数据分析和营销推广等多重功能,提升运营效率、优化用户体验,进而推动业务增长。 jd API 接入说明 API地址:申请调用KEY地址 调用示例: 参数说明 通用…

『大模型笔记』斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来

MAC 文章目录 一. 斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来引言过去与现在现代 AI 的进步未来的发展空间智能近期进展与未来展望文字输入制作视频机器人学习AI 与人类互动医疗健康应用结语二. 参考文献一. 斯坦福大学教授李飞飞在2024年数据与人…

保姆级网络信任证书配置教程

前言 TitanIDE在第一次安装完成以后,会显示的网络协议是https不安全的,我们需要在本地配置信任证书,有信任证书才能正常使用所有的功能,以下操作均以服务器名称ide,ip为192.168.101.144的服务器为例,在实际…

若依 Excel导入 字段值转换 字典自动匹配转换等

Excel表格数据截图: 数据库结构:需要将数据转换为数值或char类型存储 转换结果: 未使用Excel注解参数的效果: 断点数据 使用Excel注解参数的效果: 断点数据 最终入库: 参考: http://doc.ru…