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

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.mzph.cn/web/28528.shtml

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

相关文章

内窥镜窄带光

文章目录 NBI相关信息 NBI相关信息 第一不知道哪家有这个技术? 第二直接搜索找不到相关信息 第三只能搜企业官网 搜集到的与NBI,相关的信息如下 英美达医疗公司 https://www.innermed.com/index.php/gongsixinwen/139.html 新光维医疗公司 官网页面…

【Spring】1. Maven项目管理

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

Web前端图片欣赏:视觉盛宴与技术魅力的完美融合

Web前端图片欣赏:视觉盛宴与技术魅力的完美融合 在这个数字化时代,Web前端技术不仅承载着信息的传递,更在视觉呈现上不断追求创新与突破。今天,我们将一同欣赏一场由Web前端技术打造的图片盛宴,感受其独特的魅力与无尽…

教案:Horovod v0.2 介绍与使用

课程目标 了解Horovod的主要功能和优势。学习如何安装和配置Horovod。掌握Horovod在分布式训练中的应用。 教学内容 Horovod的简介和动机 动机 使单GPU训练脚本轻松扩展到多GPU训练。尽量减少代码修改以实现分布式训练。内部采用MPI模型,代码变动较少,…

02-使用jQuery操作页面

操作DOM元素 1. 操作属性(重点) attr() 获取或设置标签(html标签)的属性。 removeAttr() 删除标签的属性。 prop() 获取或设置元素(DOM元素)的属性。 removeProp() 删除元素的属性。 注意:不要使用该方法来移除诸如 style、id 或 checked 之类的 HTML 属性…

【无标题】Pycharm执行报错

file 读取未指定utf-8编码,加上就好了 疑问:为什么 有的电脑可以直接跑呢?该电脑、Pycharm、工程,已经做了修改设置默认值,但是到新的电脑上,就需要重新设置,所以 file 读、写,最好…

鸿蒙轻内核调测-内存调测-内存泄漏检测

1、基础概念 内存泄漏检测机制作为内核的可选功能,用于辅助定位动态内存泄漏问题。开启该功能,动态内存机制会自动记录申请内存时的函数调用关系(下文简称LR)。如果出现泄漏,就可以利用这些记录的信息,找到…

如何编写测试用例?

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 在软件测试中,测试用例是执行测试的重要依据,它的质量直接影响测试的效果…

程序员日志之计算机相关专业还值得选择吗?

目录 传送门正文日志1、概要2、专业选择2.1、专业2.2、学校2.3、城市 3、计算机相关专业还值得选择吗? 传送门 SpringMVC的源码解析(精品) Spring6的源码解析(精品) SpringBoot3框架(精品) MyB…

图神经网络实战(14)——基于节点嵌入预测链接

图神经网络实战(14)——基于节点嵌入预测链接 0. 前言1. 图自编码器2. 变分图自编码器3. 实现变分图自编码器小结系列链接 0. 前言 我们已经了解了如何使用图神经网络 (Graph Neural Networks, GNN) 生成节点嵌入,我们可以使用这些嵌入执行矩…

中华老字号李良济,展现百年匠心之魅力,释放千年中医药文化自信

6月14-16日,“潮品老字号 国货LU锋芒”江苏老字号博览会在南京隆重启幕,中华老字号李良济凭借过硬的品牌实力和优质的口碑再次受邀参加,并在展会上绽放百年匠心魅力,彰显千年中医药文化自信! 百年匠心 以实力铸就荣耀…

计算机组成原理之定点乘法运算

文章目录 原码并行乘法与补码并行乘法原码算法运算规则存在的问题带符号的阵列乘法器习题原码阵列乘法器间接补码阵列乘法器直接补码阵列乘法器 补码与真值的转换 原码并行乘法与补码并行乘法 原码算法运算规则 存在的问题 理解流水式阵列乘法器(并行乘法器&#x…

Java环境安装

下载JDK https://www.oracle.com/cn/java/technologies/downloads/#jdk22-windows 点开那个下载都可以但是要记住下载的路径因为下一步要添加环境变量 选择编辑系统环境变量 点击环境变量 点击新建 新建环境变量JAVA_HOME 并输入JDK在计算机保存的路径 打开cmd 输入java -…

GStreamer——教程——基础教程4:Time management

基础教程4:Time management(时间管理) 目标 本教程展示了如何使用GStreamer时间相关工具。特别是: 如何查询管道以获取流位置或持续时间等信息。如何寻找(跳转)到流内的不同位置(时间&#x…

JVM调优-推荐启动参数

JVM&#xff08;Java Virtual Machine&#xff09;调优是为了提高Java应用程序的性能和稳定性。以下是一些常用的JVM启动参数及其作用&#xff0c;这些参数可以帮助优化JVM性能&#xff1a; 1. 堆内存设置&#xff1a; - -Xms<size>: 设置初始堆大小。例如&#xff0…

python模块之codecs

python 模块codecs python对多国语言的处理是支持的很好的&#xff0c;它可以处理现在任意编码的字符&#xff0c;这里深入的研究一下python对多种不同语言的处理。 有一点需要清楚的是&#xff0c;当python要做编码转换的时候&#xff0c;会借助于内部的编码&#xff0c;转换…

数据结构与算法笔记:基础篇 -递归树:如何借助树来求解递归算法的时间复杂度?

概述 我们都知道&#xff0c;递归代码的时间复杂度分析起来很麻烦。在《排序(下)》哪里讲过&#xff0c;如何用递推公式&#xff0c;求解归并排序、快速排序的时间复杂度&#xff0c;但是有些情况&#xff0c;比如快排的平均时间复杂度的分析&#xff0c;用递推公式的话&#…

《天软股票特色因子定期报告》

最新《天软股票特色因子定期报告》&#xff08;2024-06&#xff09;&#xff0c;抢先发布 内容概要如下&#xff1a; 天软特色因子A08006&#xff08;近一月日度买卖压力2&#xff09;从行业角度分析&#xff0c;在电子设备、石油石化行业表现稳定&#xff0c;无论在有效性、区…

【名词解释】Unity中的3D物理系统:触发器

在Unity的3D物理系统中&#xff0c;触发器&#xff08;Trigger&#xff09;是一种特殊的碰撞体&#xff0c;用于检测物体进入或离开一个特定区域的事件&#xff0c;但它不会像普通碰撞体那样产生物理碰撞反应。触发器通常用于实现非物理交互&#xff0c;如检测玩家进入特定区域…

复星杏脉算法面经2024年5月16日面试

复星杏脉算法面经2024年5月 面试记录&#xff1a;3个部分1. 自己介绍 2. 问八股 3.代码题先自我介绍20分钟问问题1. 梯度爆炸怎么解决&#xff0c;三个解决方案&#xff1a;梯度裁剪&#xff08;Gradient Clipping&#xff09;正则化&#xff08;Regularization&#xff09;调整…