通过开源 C# .NET 库创建和管理 MSG 文件
免费 C# .NET MSG 邮件库可创建、读取、编辑、操作并发送 MSG 邮件,无需依赖 Microsoft Office 或 Outlook 互操作性。
什么是 MsgKit?
对于在 .NET 环境中处理 Microsoft Outlook .msg 文件的软件开发者而言,MsgKit 是一个轻量级、开源且灵活的解决方案。MsgKit 是由 Sicos1977 创建的 .NET 库,使开发者能够在不依赖 Microsoft Office 或 Outlook 互操作性组件的情况下生成 MSG 邮件文件。这使其在无法安装 Outlook 的服务器端或跨平台应用中尤为有用。
MsgKit 使用 C# .NET 编写,并通过低层 MAPI(消息应用程序编程接口)属性提供对 MSG 文件结构的深度控制。无论您是构建自定义电子邮件归档工具、迁移消息,还是以编程方式生成电子邮件,MsgKit 都提供了一套强大的功能。与 Microsoft.Office.Interop.Outlook 不同,MsgKit 完全托管,无需安装 Outlook。它支持 MAPI 属性、附件、HTML/RTF 正文以及多个收件人,为开发者提供对电子邮件文件创建过程的完整控制。它托管在 GitHub 上,采用 MIT 许可证,非常适合开源和商业使用。
MsgKit 入门指南
安装 MsgKit 最简单的方法是通过 NuGet。要在 Visual Studio 的包管理器控制台中使用它,请输入以下命令。
通过 NuGet 安装 MsgKit
Install-Package MsgKit 通过 GitHub 安装 MsgKit 库
git clone https://github.com/Sicos1977/MsgKit.git 通过 .NET API 从头创建 MSG 文件
开源的 MsgKit 库允许软件开发者使用 .NET 代码从头生成兼容 Outlook 的 .msg 文件。开发者可以设置所有基本的电子邮件属性,如主题、正文、收件人、附件、标题等。以下代码片段设置了发件人、主题、HTML 正文和纯文本内容——全部无需安装 Outlook。
如何通过 C# .NET API 创建 MSG 文件?
Message message = new Message(
new Sender("sender@example.com", "Sender Name"),
new Representing("representing@example.com", "Representing Name"),
"Test Subject",
"This is the HTML body of the message.",
"This is the plain text body of the message."
);
支持 To、Cc 和 Bcc 收件人
MsgKit 库让软件开发者只需几行代码就能轻松创建并发送电子邮件给多个收件人。使用 MsgKit 添加多种类型的收件人非常简单。您可以以编程方式指定 To、Cc 和 Bcc 地址。下面是一个简单示例,演示开发者如何在 .NET 应用程序中批量生成电子邮件或用于归档目的。
如何通过 C# API 创建并发送电子邮件至多个收件人?
message.Recipients.AddTo("recipient@example.com", "Recipient Name");
message.Recipients.AddCc("cc@example.com", "CC Name");
message.Recipients.AddBcc("bcc@example.com", "BCC Name");
通过 C# API 为电子邮件添加丰富附件
开源的 MsgKit 库为 .NET 应用程序中向电子邮件消息添加和管理附件提供了完整的功能。该库支持添加各种类型的附件——包括二进制文件、嵌入的消息和 RTF 数据。附件可以直接从流或字节数组插入。开发人员还可以控制附件的 MIME 类型和文件名,确保与大多数电子邮件客户端的兼容性,如以下代码示例所示。
如何通过 C# .NET API 添加和管理电子邮件附件?
byte[] fileData = File.ReadAllBytes("sample.pdf");
message.Attachments.Add(new Attachment(
fileData,
"sample.pdf",
"application/pdf"
));
MAPI 元数据保留支持
MsgKit 库为软件开发人员提供了对 MAPI 属性的完全控制,使其适用于需要细粒度电子邮件元数据保留的应用程序——例如合规系统或电子邮件备份工具。开发人员甚至可以使用自定义 MAPI 属性来扩展默认行为,以应对高级场景。