Aspose.Email FOSS for .NET 是一个 MIT 许可证、无依赖的 C# 库,用于处理 Microsoft Outlook .msg 文件、复合文件二进制(CFB)容器和 EML 消息。添加单个 NuGet 包,即可立即开始读取、创建和处理电子邮件,而无需安装 Microsoft Outlook 或任何专有运行时。
该库提供两个访问层级。低层级中,CfbReader 和 CfbWriter 提供对 CFB 二进制容器的完整控制——遍历目录条目,读取和写入存储节点及流数据,并检查原始扇区布局。MsgReader 和 MsgWriter 在 CFB 之上处理 MSG 格式,公开 MAPI 属性流、收件人表和附件子存储。高层级中,MapiMessage 允许您从头创建新消息,读取主题、正文、发件人和收件人,管理附件,并通过内置的 MIME 实现实现 MSG 与 EML 格式之间的转换。
该库面向 .NET 8.0 或更高版本,并且没有本机依赖,使其适用于 Windows、Linux、macOS、Docker 容器和无服务器函数。有关其他功能和商业支持,请参阅 Aspose.Email for .NET。
CfbReader.FromFile()、CfbReader.FromStream() 或 new CfbReader(data) 从文件路径、流或字节数组加载现有 CFB 容器。IterStorages()、IterStreams()、IterChildren() 和 IterTree() 迭代存储、流和子项。ResolvePath(names) 在嵌套的存储层次结构中导航,以通过名称链定位特定流。CfbDocument 以编程方式构建 CFB 文档,并通过 CfbWriter.ToBytes() 或 CfbWriter.WriteFile() 将其序列化为字节或文件。CfbStorage 和 CfbStream 节点附加到任意存储节点上。.msg 文件的容器格式 — 直接访问 CFB 可实现取证检查和修复。MsgReader.FromFile() 或 MsgReader.FromStream() 打开 Outlook MSG 文件,并访问底层的 MAPI 属性流、收件人记录和附件子存储。MsgWriter.ToBytes() 或 MsgWriter.WriteFile() 从 MsgDocument 生成 MSG 文件。MsgStorage、MsgStream 和 MsgStorage.FindStream()。MsgStorage.FindStream() 和 MsgStorage.FindStorage() 来定位命名的子条目。.msg 文件并提取元数据或附件。.msg 文件并将其发送到基于 Outlook 的邮件系统。MapiMessage.Create(subject, body) 构建完整的电子邮件,设置 SenderName、SenderEmailAddress 和 HtmlBody。To、Cc 和 Bcc 收件人,通过 AddRecipient(),包括电子邮件地址和显示名称。AddAttachment() 添加文件和流附件,或直接使用 Filename、MimeType、ContentId 和 Data 构造 MapiAttachment 对象。message.Save() 或 message.Save(stream) 序列化,并使用 MapiMessage.FromFile() 或 MapiMessage.FromStream() 重新加载。message.Attachments,并将每个 attachment.Data 保存到磁盘。message.Subject、message.Body、message.SenderEmailAddress 和 message.Recipients。.eml 文件(RFC 5322 / MIME)解析为完整的 MapiMessage 对象,通过 MapiMessage.LoadFromEml(stream)。MapiMessage 序列化回 MIME 格式,使用 message.SaveToEml() 或 message.SaveToEml(stream)。.eml 和 .msg 文件的混合归档规范化为单一格式。.eml 固件,并验证它们在 MSG 循环往返中没有数据丢失。从流中打开 Outlook MSG 文件并打印主题 — 无需 Microsoft Outlook。
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
构建包含发件人、收件人和附件的完整电子邮件,然后将其写入 MSG 文件。
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);
加载标准 .eml 文件,并使用内置的 MIME 解析器将其保存为 Outlook .msg 文件。
using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);