常见问题 — Aspose.Email FOSS for .NET

常见问题 — Aspose.Email FOSS for .NET

许可

Aspose.Email.Foss 使用什么许可证?

MIT 许可证。无需许可证密钥。可在个人、商业和开源项目中自由使用。


安装

如何安装 Aspose.Email.Foss?

dotnet add package Aspose.Email.Foss

需要哪个 .NET 版本?

.NET 8.0 或更高版本。该库不支持 .NET Framework 或 .NET Standard。

是否有本机依赖?

不。该库是纯托管的 C#,没有本机依赖。它在 Windows、Linux、macOS、Docker 和无服务器环境中表现完全相同。


格式支持

支持哪些电子邮件格式?

格式读取写入
MSG (Outlook)
CFB (Compound File Binary)
EML (MIME / RFC 5322)

我可以读取 EML 文件吗?

是的。使用 MapiMessage.LoadFromEml(stream) 将标准的 .eml 文件加载到一个
MapiMessage。内置的 MIME 解析器能够处理折叠的标题、base64 内容以及
multipart 消息。

我可以将 MSG 转换为 EML 吗?

是的。调用 message.SaveToEml() 进行内存中的 byte[] 输出,或
message.SaveToEml(stream) 将其写入文件。主题、正文、HTML 正文、发件人、
收件人以及所有附件均会被保留。

是否支持 TNEF(winmail.dat)?

不。仅支持标准的 MSG (CFB) 和 EML (MIME) 格式。

是否支持 IMAP/SMTP/POP3?

不。该库直接处理 MSG 文件,不包含任何网络/协议层。


API 使用

如何加载 MSG 文件?

using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

如何创建新消息?

var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");

我该如何添加附件?

// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");

// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");

如何将 EML 转换为 MSG?

using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");

我如何访问原始 CFB 结构?

using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
    Console.WriteLine(entry.Name);

已知限制

有没有未实现的方法?

当前版本中不存在有意未实现的存根。

是否提供日历/预约支持?

该库通用地处理 MSG 文件。可以通过 SetProperty() / GetPropertyValue() 使用来自 CommonMessagePropertyId 的 MAPI 属性 ID 访问特定于日历的属性,但没有专用的日历或约会 API。

是否保证线程安全?

每个 MapiMessageCfbReader 实例都是独立的。并发访问到分离的
来自不同线程的实例是安全的。不要在多个线程之间共享单个实例
在没有外部同步的情况下。

 中文