在Java中将电子邮件转换为HTML

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文件具有以下视图:

MSG文件视图

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

HTML文件视图

下面的代码片段演示了将MSG或EML格式的电子邮件消息转换为带有图像的HTML文件的过程,这些图像被保存到目标目录中。 代码执行以下步骤:

  1. 首先,分别指定源MSG/EML文件和HTML文件的源和目标路径,以及资源的目标目录。
  2. 使用MailMessage.load方法加载MSG或EML文件。
  3. 创建HtmlSaveOptions对象并将ResourceRenderingMode属性设置为SaveToFile
  4. HtmlSaveOptionsSaveResourceHandler定义一个invoke方法。
  5. 如果在invoke方法中尚不存在,则为资源创建目标目录。
  6. invoke方法内根据资源的内容类型将每个资源保存到一个文件中。
  7. 调用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中。代码执行以下步骤:

  1. 定义电子邮件文件和HTML输出的源和目标路径。
  2. 使用MailMessage.load方法加载MSG或EML文件。
  3. 创建HtmlSaveOptions类的新实例,允许您配置电子邮件如何保存为HTML。
  4. 配置HtmlSaveOptions实例以将资源(包括图像)嵌入到HTML中。
  5. 调用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的更多信息、功能和设施。

另见