个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

Aspose 使用教程:使用 C# .NET 处理 5 种存储文件格式

原创
软件开发
来源:Aspose
文档格式
文件格式
Aspose
C#
.net
网络通讯
email
2024-03-05
文档格式
文件格式
Aspose
C#
.net
网络通讯
email


处理各类存储文件格式

  • 读取 PST(个人存储表)文件

  • 读取 OST(Outlook 脱机存储表)文件

  • 读取 OLM(Outlook for Mac 存档)文件

  • 读取 MBOX(邮箱)文件

  • 读取 TGZ(压缩 Tar 存档)文件

电子邮件客户端和平台的多样化往往会产生各种电子邮件存储格式。一方面,这些格式在解析内容时会带来挑战。另一方面,在存储数据或在网络服务出现故障时恢复数据时,这些格式又是不可或缺的。在本文中,我们将深入探讨每一种格式,并演示如何利用 Aspose.Email 来提取、列出和检索五种主要文件格式的电子邮件内容。


处理存储文件的 C# 应用程序接口

对于存储文件的处理,我们将使用多功能 API,该 API 的设计目的是简化复杂的电子邮件相关任务和交互,为电子邮件管理提供全面的解决方案。Aspose.Email for .NET 使开发人员能够创建能与 PST、OST、MBOX、EML、MSG 等各种格式的电子邮件数据无缝交互的应用程序。凭借其丰富的功能集和用户友好的方法,对存储在文件中的电子邮件数据的操作、提取和管理变得简单而直观。要利用 API 的强大功能,请下载其 DLL 或使用以下命令从 NuGet 安装:

PM> Install-Package Aspose.Email


处理各类存储文件格式

读取 PST(个人存储表)文件

PST 是 Microsoft Outlook 用来存储电子邮件、联系人、日历和其他数据的一种文件格式。Aspose.Email 提供了提取和检索电子邮件、附件和文件夹结构等项目的方法,从而简化了 PST 文件的处理。使用该库,开发人员可以通过编程访问 PST 内容、搜索特定项目并将其导出为各种格式。在下面的代码示例中,你将看到如何读取 PST 格式的文件:


  1. 首先,使用 PersonalStorage 类的 FromFile 方法加载 pst 文件。

  2. 使用 pst 对象 RootFolder 属性上的 GetSubfolder() 方法访问 PST 中的 "收件箱 "文件夹。

  3. 使用文件夹对象上的 EnumerateMessages() 方法遍历文件夹中的每封邮件。

  4. 使用 pst 对象上的 ExtractMessage() 方法提取邮件,同时传入每个 msgInfo 对象的 EntryIdString 属性。

  5. 访问邮件内容:

  • 使用 msg 对象的 Subject 属性获取邮件主题。

  • 使用 msg 对象的 SenderEmailAddress 属性获取邮件的发件人地址。

  • 使用 msg 对象的 Body 属性获取邮件正文。


// Load the PST file
using (var pst = PersonalStorage.FromFile(filename)
{
   // Access the desired folder within the PST
   var folder = pst.RootFolder.GetSubfolder("Inbox");
 
   // Enumerate and list messages in the folder
   foreach(var msgInfo in folder.EnumerateMessages())
   {
      var msg = pst.ExtractMessage(msgInfo.EntryIdString);
    
      //Access the contents of the message
      // Get subject
      Console.WriteLine("Subject:" + msg.Subject);
    
      // Get from address
      Console.WriteLine("From:" + msg.SenderEmailAddress);
    
      // Get body
      Console.WriteLine("Body" + msg.Body);
   }
}


读取 OST(Outlook 脱机存储表)文件

OST 文件是 Microsoft Exchange 邮箱数据的离线副本。Aspose.Email 支持从 OST 文件中提取数据,允许开发人员检索电子邮件、文件夹和附件。这在创建备份解决方案或在不同平台之间迁移数据时特别有用。用于解析 OST 文件的功能集与 PST 相同,因此您可以使用上述代码示例指定 OST 文件的正确路径。


读取 OLM(Outlook for Mac 存档)文件

OLM 是 Microsoft Outlook for Mac 用于存储电子邮件、联系人和其他数据的存储格式。使用 Aspose.Email,开发人员可以从 OLM 文件中提取内容,包括电子邮件和附件。该功能对于跨平台数据迁移或创建备份系统非常有价值。以下代码示例和步骤将向您展示利用 API 解析 Outlook for Mac 文件的方法:


  1. 创建 OlmStorage 类的实例,并使用构造函数加载 OLM 文件。

  2. 使用 olm 对象上的 GetFolder() 方法访问 OLM 中的 "收件箱 "文件夹,将文件夹名称传入 "收件箱",如果文件夹不存在,则指定创建该文件夹。

  3. 使用文件夹对象上的 EnumerateMessages() 方法遍历文件夹中的每封邮件。

  4. 通过传入 msgInfo 对象,使用 olm 对象上的 ExtractMapiMessage() 方法提取邮件。

  5. 访问邮件内容:

  • 使用 msg 对象的 Subject 属性获取邮件主题。

  • 使用 msg 对象的 SenderEmailAddress 属性获取邮件的发件人地址。

  • 使用 msg 对象的 Body 属性获取邮件正文。


// Load the OLM file
using (var olm = new OlmStorage(filename))
{
    // Access the desired folder within the OLM
    var folder = olm.GetFolder("Inbox", true);
 
    // Enumerate and list messages in the folder
    foreach (var msgInfo in folder.EnumerateMessages())
    {
        var msg = olm.ExtractMapiMessage(msgInfo);
  
        //Access the contents of the message
        // Get subject
        Console.WriteLine("Subject:" + msg.Subject);
     
        // Get from address
        Console.WriteLine("From:" + msg.SenderEmailAddress);
     
        // Get body
        Console.WriteLine("Body" + msg.Body);
    }
}


读取 MBOX(邮箱)文件

MBOX 是一种广泛使用的电子邮件存储格式。许多电子邮件客户端和平台都支持这种格式。Aspose.Email 支持从 MBOX 文件中提取和检索电子邮件和附件,使开发人员能够以编程方式处理电子邮件数据。请尝试以下代码片段来解析 mbox 文件:


  1. 使用带有 MboxLoadOptions 的 MboxStorageReader 类的 CreateReader() 方法加载 MBOX 文件。

  2. 使用 mbox 对象上的 EnumerateMessageInfo() 方法遍历 mbox 中的每条信息。

  3. 传入 EntryId 和 EmlLoadOptions,使用 mbox 对象上的 ExtractMessage() 方法从 mbox 中提取信息内容。

  4. 访问邮件内容:

  • 使用 eml 对象的 Subject 属性获取邮件主题。

  • 使用 eml 对象的 From 属性获取邮件的发件人地址。

  • 使用 eml 对象的 Body 属性获取邮件正文。


// Load the MBOX file
using (var mbox = MboxStorageReader.CreateReader(fileName, mboxLoadOptions))
{
    // Enumerate and list messages in the folder
    foreach (var msgInfo in mbox.EnumerateMessageInfo())
    {
        var eml = mbox.ExtractMessage(messageInfo.EntryId, emlLoadOptions);
        
        //Access the contents of the message
        // Get subject
        Console.WriteLine("Subject:" + eml.Subject);
     
        // Get from address
        Console.WriteLine("From:" + eml.From);
     
        // Get body
        Console.WriteLine("Body" + eml.Body);
    }
}


读取 TGZ(压缩 Tar 存档)文件

TGZ 是一种压缩归档格式,通常用于在 Zimbra 电子邮件客户端中存储电子邮件备份数据。Aspose.Email 允许从 TGZ 文件中提取电子邮件内容,从而可以访问和操作这些存档中包含的电子邮件数据。以下代码片段和步骤将向您展示如何读取 tgz 文件:


  1. 创建 TgzReader 类的实例,并使用构造函数加载 TGZ 文件。

  2. 使用文件夹对象上的 ReadNextMessage() 方法遍历 "收件箱 "文件夹中的每个项目。

  3. 使用 CurrentMessage 属性从每个条目中提取信息内容。

  4. 对提取的信息内容执行所需的操作。


using (var tgzReader = new TgzReader(fileName))
{
  while (reader.ReadNextMessage())
  {
     if (reader.CurrentDirectory == "Inbox")
     {
         var eml = reader.CurrentMessage;
         //Access the contents of the message
         // Get subject
         Console.WriteLine("Subject:" + eml.Subject);
     
         // Get from address
         Console.WriteLine("From:" + eml.From);
     
         // Get body
         Console.WriteLine("Body" + eml.Body);
     }
  }
}


结论

在本文中,我们探讨了如何用 C# 编程处理最常用格式的存储文件。我们直观的代码示例向您展示了如何在您的项目中实现基本功能。有了 Aspose.Email for .NET,加载、列出和访问存储文件的内容变得更加容易。该 API 为您提供了一种将电子邮件相关功能集成到您的 .NET 应用程序中的无缝方式。如果您需要帮助或建议,请随时与我们联系


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508