HTML 是一种广泛使用且易于访问的格式,可以通过多种平台、网络浏览器(包括台式计算机和移动设备)查看。相比之下,EML 和 MSG 文件可能需要特定的软件或电子邮件客户端才能查看,这可能会使它们随着时间的推移变得更难以访问和查看。因此,将 MSG 或 EML 文件转换为 HTML 可以使它们更易于查看,特别是对于可能没有兼容电子邮件客户端或软件的收件人而言。
此外,HTML 文件更容易存档并保持可搜索的索引格式。
本文介绍了一种使用 C# 快速轻松地将 MSG 或 EML 文件转换为 HTML 格式的算法,无论其根本目的如何。我们可靠的方法可保证电子邮件的内容(包括嵌入的图像)完整保留,不会丢失。这可确保在整个转换过程中保持电子邮件的完整性。
本文涵盖以下主题:
用于将 EML/MSG 文件转换为 HTML 的 C# API
将 EML/MSG 文件转换为 HTML 单独保存图像
将 EML/MSG 文件转换为 HTML,将图像保存在 HTML 中
保存带有标题的 HTML
用于将 EML/MSG 文件转换为 HTML 的 C# API
为了将 EML/MSG 文件转换为 HTML,我们将使用 Aspose.Email for .NET。它是一个电子邮件处理 API,可让您操作电子邮件并使用流行电子邮件客户端(例如 Thunderbird、Outlook 等)的文件格式。您可以使用以下命令下载 API 的 DLL 或从 NuGet 安装它:
PM> 安装包 Aspose.Email
将 EML/MSG 文件转换为 HTML 单独保存图像
典型的 MSG 文件具有以下视图:
使用我们的 API,您可以在设备上设置任何目录,并将目标 HTML 文件和图像保存在单独的文件夹中:
使用以下代码示例将 MSG 或 EML 格式的电子邮件转换为包含图像的 HTML 文件,并将其保存到目标目录。该代码执行以下步骤:
首先,分别指定源 MSG/EML 文件和 HTML 文件的源路径和目标路径,以及资源的目标目录。
使用 MailMessage.Load 方法加载 MSG 或 EML 文件。
创建 HtmlSaveOptions 对象并将 ResourceRenderingMode 属性设置为 SaveToFile。
定义 HtmlSaveOptions 的 SaveResourceHandler 事件的委托。
为委托内的资源创建一个目标目录(如果该目录尚不存在)。
将每个资源保存到一个文件,该文件的文件名基于资源的内容类型在委托内。
调用 MailMessage 实例的 Save 方法,传入目标 HTML 文件名和 HtmlSaveOptions 实例,以 HTML 格式保存电子邮件。
将 EML/MSG 文件转换为 HTML,将图像保存在 HTML 中
有时您可能更喜欢将 EML/MSG 文件转换为 HTML,并在 HTML 中保留嵌入的图像。
以下代码片段演示了如何使用 C# 将 MSG 或 EML 文件转换为 HTML 格式并将图像保存在 HTML 中。该代码执行以下步骤:
定义电子邮件文件和 HTML 输出的源路径和目标路径。
使用 MailMessage.Load 方法加载 MSG 或 EML 文件。
创建 HtmlSaveOptions 类的新实例,该实例允许您配置将电子邮件另存为 HTML 的方式。
配置 HtmlSaveOptions 实例以将资源(包括图像)直接嵌入到 HTML 中。
调用 MailMessage 实例的 Save 方法,传入目标 HTML 文件名和 HtmlSaveOptions 实例,以 HTML 格式保存电子邮件。
保存带有标题的 HTML
作为可选变体,您可以保存带有标题的 HTML。以下代码片段演示了如何在 C# 中保存带有标头的 HTML:
结果,文本标题将被添加到目标 HTML 中:
结论
总而言之,通过本文,您刚刚了解了 HTML 格式在归档和管理文件方面的便利性,以及如何使用 Aspose.Email for .NET 库在 C# 中执行 EML 或 MSG 的转换。您可以看到,只需几行代码,转换过程就变得多么快速和简单。如果您有任何疑问,请随时写信到我们的免费支持论坛。您还可以从我们的文档中了解有关 Aspose.Email for .NET、其功能和设施的更多信息。
另请参阅
在 C# 中读取 Outlook MSG 文件