
HTML是一种广泛使用且易于访问的格式,可以在多种平台、网页浏览器,包括台式计算机和移动设备上查看。相比之下,EML和MSG文件可能需要特定的软件或电子邮件客户端才能查看,这可能使其随着时间的推移变得更难访问和查看。因此,将MSG或EML文件转换为HTML使其更易于查看,尤其是对于可能没有兼容电子邮件客户端或软件的收件人。
此外,HTML文件更易于归档,并保持可搜索、可索引的格式。
本文介绍了一种使用Java快速轻松地将MSG或EML文件转换为HTML格式的算法,无论其基础目的为何。 我们可靠的方法确保电子邮件的内容,包括嵌入的图像,完全保留且没有任何损失。这确保了在转换过程中电子邮件的完整性得以保持。
文章涵盖以下主题:
Java API将EML/MSG文件转换为HTML
为了完成将EML/MSG文件转换为HTML的任务,我们将使用Aspose.Email for Java。该电子邮件处理API使用户能够管理电子邮件并处理流行电子邮件客户端(如Thunderbird、Outlook等)的文件格式。要获取该API,可以下载或安装它。
将EML/MSG文件转换为HTML并单独保存图像
典型的MSG文件具有以下视图:

使用我们的API,您可以设置设备上的任何目录,将目标HTML文件与图像保存在单独的文件夹中:

下面的代码片段演示了将MSG或EML格式的电子邮件消息转换为带有图像的HTML文件的过程,这些图像被保存到目标目录中。 代码执行以下步骤:
- 首先,分别指定源MSG/EML文件和HTML文件的源和目标路径,以及资源的目标目录。
- 使用MailMessage.load方法加载MSG或EML文件。
- 创建HtmlSaveOptions对象并将ResourceRenderingMode属性设置为SaveToFile。
- 为HtmlSaveOptions的SaveResourceHandler定义一个
invoke
方法。 - 如果在
invoke
方法中尚不存在,则为资源创建目标目录。 - 在
invoke
方法内根据资源的内容类型将每个资源保存到一个文件中。 - 调用MailMessage实例的save方法,传入目标HTML文件名和HtmlSaveOptions实例,以将电子邮件保存为HTML格式。
// MSG or EML filename | |
String msgFileName = pathCombine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
String htmlFileName = pathCombine(targetPath, "A Day in the Park.html"); | |
// target directory to save images | |
String resourceDir = pathCombine(targetPath, "A Day in the Park"); | |
// Load MSG or EML | |
MailMessage msg = MailMessage.load(msgFileName); | |
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.SaveToFile); | |
htmlSaveOptions.setSaveResourceHandler(new SaveResourceHandler() { | |
@Override | |
public void invoke(AttachmentBase attachment, String[] resourceFileName) { | |
resourceFileName[0] = pathCombine(resourceDir, attachment.getContentType().getName()); | |
attachment.save(resourceFileName[0]); | |
} | |
}); | |
msg.save(htmlFileName, htmlSaveOptions); |
将EML/MSG文件转换为HTML并将图像保存在HTML中
有时您可能希望将EML/MSG文件转换为HTML,同时在HTML中保留嵌入的图像。

下面的代码片段演示了如何将MSG或EML文件转换为HTML格式并将图像保存在HTML中。代码执行以下步骤:
- 定义电子邮件文件和HTML输出的源和目标路径。
- 使用MailMessage.load方法加载MSG或EML文件。
- 创建HtmlSaveOptions类的新实例,允许您配置电子邮件如何保存为HTML。
- 配置HtmlSaveOptions实例以将资源(包括图像)嵌入到HTML中。
- 调用MailMessage实例的save方法,传入目标HTML文件名和HtmlSaveOptions实例,以将电子邮件保存为HTML格式。
// MSG or EML filename | |
String msgFileName = pathCombine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
String htmlFileName = pathCombine(targetPath, "A Day in the Park.html"); | |
// Load MSG or EML | |
MailMessage msg = MailMessage.load(msgFileName); | |
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.EmbedIntoHtml); | |
msg.save(htmlFileName, htmlSaveOptions); |
带有标题的HTML保存
作为一个可选变体,您可以保存带有标题的HTML。以下代码片段演示了如何在Java中保存带有标题的HTML:
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.EmbedIntoHtml); | |
htmlSaveOptions.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader); |
因此,文本标题将被添加到目标HTML中:

结论
总而言之,您刚刚从本文中了解到HTML格式在归档和管理文件方面的便利性,以及如何使用Aspose.Email for Java库在Java中将EML或MSG格式转换为HTML。您可以看到,只需几行代码,转换过程是多么快速和简单。总体而言,我们的API是Java应用程序中电子邮件管理和处理的绝佳解决方案。
如果您有任何问题,请随时写信给我们的免费支持论坛。您还可以从我们的文档中了解有关Aspose.Email for Java的更多信息、功能和设施。