
HTML — это широко используемый и легко доступный формат, который можно просматривать на множестве платформ, веб-браузерах, включая настольные компьютеры и мобильные устройства. В отличие от этого, файлы EML и MSG могут требовать специального программного обеспечения или почтовых клиентов для просмотра, что со временем может сделать их более труднодоступными. Таким образом, преобразование файлов MSG или EML в HTML упрощает их просмотр, особенно для получателей, которые могут не иметь совместимых почтовых клиентов или программного обеспечения.
Кроме того, HTML-файлы легче архивировать и они остаются в формате, который можно искать и индексировать.
Эта статья представляет алгоритм быстрого и простого преобразования файлов MSG или EML в формат HTML с использованием Java, независимо от основного назначения. Наш надежный метод гарантирует, что содержание электронного письма, включая встроенные изображения, полностью сохраняется без каких-либо потерь. Это обеспечивает сохранение целостности электронного письма на протяжении всего процесса преобразования.
Статья охватывает следующие темы:
- Java API для преобразования файлов EML/MSG в HTML
- Преобразование файлов EML/MSG в HTML с сохранением изображений отдельно
- Преобразование файлов EML/MSG в HTML с сохранением изображений внутри HTML
- Сохранение HTML с заголовком
Java API для преобразования файлов EML/MSG в HTML
Чтобы выполнить задачу преобразования файлов EML/MSG в HTML, мы будем использовать Aspose.Email для Java. Этот API для обработки электронной почты позволяет пользователям управлять электронными письмами и работать с форматами файлов популярных почтовых клиентов, таких как Thunderbird, Outlook и других. Чтобы получить API, вы можете либо скачать, либо установить его из нашего репозитория.
Преобразование файлов EML/MSG в HTML с сохранением изображений отдельно
Типичный файл MSG имеет следующий вид:

С нашим API вы можете установить любую директорию на вашем устройстве и сохранить целевой HTML-файл с изображениями в отдельной папке:

Ниже приведен фрагмент кода, демонстрирующий процесс преобразования электронного сообщения в формате MSG или EML в HTML-файл с изображениями, которые сохраняются в целевой директории. Код выполняет следующие шаги:
- Сначала указывает исходные и целевые пути для исходного файла MSG/EML и HTML-файла соответственно, а также целевую директорию для ресурсов.
- Загружает файл MSG или EML с помощью метода MailMessage.load.
- Создает объект HtmlSaveOptions и устанавливает свойство ResourceRenderingMode на SaveToFile.
- Определяет метод
invoke
для SaveResourceHandler объекта HtmlSaveOptions. - Создает целевую директорию для ресурсов внутри метода
invoke
, если она еще не существует. - Сохраняет каждый ресурс в файл с именем файла внутри метода
invoke
, основываясь на типе содержимого ресурса. - Вызывает метод save экземпляра MailMessage, передавая в него имя целевого 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 на Java и сохранить изображения внутри HTML. Код выполняет следующие шаги:
- Определяет исходные и целевые пути для файла электронной почты и выходного HTML.
- Загружает файл MSG или EML с помощью метода MailMessage.load.
- Создает новый экземпляр класса HtmlSaveOptions, который позволяет настраивать, как электронная почта будет сохранена в HTML.
- Настраивает экземпляр HtmlSaveOptions для встраивания ресурсов, включая изображения, непосредственно в HTML.
- Вызывает метод save экземпляра MailMessage, передавая в него имя целевого 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 с заголовком. Ниже приведен фрагмент кода, демонстрирующий, как сохранить HTML с заголовком на Java:
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.EmbedIntoHtml); | |
htmlSaveOptions.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader); |
В результате текстовый заголовок будет добавлен в целевой HTML:

Заключение
Подводя итог, из этой статьи вы узнали о удобстве формата HTML для архивирования и управления вашими файлами, а также о том, как выполнить преобразование из форматов EML или MSG в HTML на Java с использованием библиотеки Aspose.Email для Java. Вы могли увидеть, как быстро и легко проходит процесс преобразования всего за несколько строк кода. В целом, наш API является отличным решением для управления и обработки электронной почты в приложениях на Java.
Если у вас есть какие-либо вопросы, не стесняйтесь написать в наш бесплатный форум поддержки. Вы также можете узнать больше о Aspose.Email для Java, его функциях и возможностях из нашей документации.