在 C# .NET 中的 Thunderbird 存储上写入和读取消息

Thunderbird 是一个开源电子邮件客户端应用程序,可让您配置多个电子邮件服务器并访问它们的电子邮件消息。这使您可以在一个地方管理来自多个帐户的电子邮件。在某些情况下,您可能需要以编程方式在 Thunderbird 存储中创建和访问电子邮件。因此,在本文中,您将学习如何在 C# .NET 中的 Thunderbird 存储上编写和读取消息。

在 Thunderbird 存储中写入和读取消息的 C# .NET API

要在 Thunderbird 存储中编写和阅读电子邮件,我们将使用 Aspose.Email for .NET。它是一个电子邮件处理 API,可让您操作电子邮件并使用流行的电子邮件客户端,如 Thunderbird、Outlook 等。您可以 下载 API 的 DLL 或使用以下命令从 NuGet 安装它.

PM> Install-Package Aspose.Email

在 C# .NET 中编写关于 Thunderbird 存储的消息

您可以使用 Aspose.Email for .NET 在几步内创建新消息并将它们存储在 Thunderbird 的存储中。以下是在 C# 中执行此操作的步骤。

以下代码示例展示了如何在 C# .NET 中将消息写入 Thunderbird 存储。

// 使用 FileStream 打开存储文件
FileStream stream = new FileStream("ExampleMbox.mbox", FileMode.Open, FileAccess.Write);

// 初始化 MboxStorageWriter 并将流传递给它
MboxrdStorageWriter writer = new MboxrdStorageWriter(stream, false);

// 使用 MailMessage 类准备新消息
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", Guid.NewGuid().ToString(), "added from Aspose.Email");
message.IsDraft = false;

// 将此消息添加到存储
writer.WriteMessage(message);

// 关闭所有相关流
writer.Dispose();
stream.Close();

在 C# 中从 Thunderbird 存储中读取消息

要从 Thunderbird 存储读取消息,我们需要使用 MboxrdStorageReader 类加载存储文件。以下是在 C# 中从 Thunderbird 读取消息的步骤。

  • 首先,将 MBOX 文件加载到 FileStream 对象中。
  • 然后,创建一个 MboxrdStorageReader 的实例来读取存储文件。
  • 之后,使用 MboxrdStorageReader.ReadNextMessage() 方法读取第一条消息。
  • 然后,开始循环遍历所有消息。
  • 如果需要,请阅读每条消息并将其保存在磁盘上。
  • 最后,在最后处理读者。

以下代码示例展示了如何在 C# 中从 Thunderbird 存储中读取消息。

// 使用 FileStream 打开存储文件
FileStream stream = new FileStream("ExampleMbox.mbox", FileMode.Open, FileAccess.Read);

// 创建 MboxrdStorageReader 类的实例并传递流
MboxrdStorageReader reader = new MboxrdStorageReader(stream, false);

// 开始阅读消息
MailMessage message = reader.ReadNextMessage();

// 循环读取所有消息
while (message != null)
{
    // 操纵消息 - 显示内容
    Console.WriteLine("Subject: " + message.Subject);
    
    // 将此消息保存为 EML 或 MSG 格式
    message.Save(message.Subject + ".eml", SaveOptions.DefaultEml);
    message.Save(message.Subject + ".msg", SaveOptions.DefaultMsgUnicode);

    // 获取下一条消息
    message = reader.ReadNextMessage();
}

// 关闭流
reader.Dispose();
stream.Close();

获取免费 API 许可证

您可以使用 免费临时许可证 使用 Aspose.Email for .NET,而不受评估限制。

结论

使用 Thunderbird,您可以在一个位置访问来自多个帐户的电子邮件。在本文中,您学习了如何在 C# .NET 中将消息写入 Thunderbird 存储。此外,您还了解了如何以编程方式从 Thunderbird 存储中读取消息。除此之外,您可以访问 文档 以探索 Aspose.Email for .NET 的其他功能。如果您有任何问题,您可以在我们的 论坛 上发帖。

也可以看看