Преобразование электронной почты в HTML на Java

HTML — это широко используемый и легко доступный формат, который можно просматривать на множестве платформ, веб-браузерах, включая настольные компьютеры и мобильные устройства. В отличие от этого, файлы EML и MSG могут требовать специального программного обеспечения или почтовых клиентов для просмотра, что со временем может сделать их более труднодоступными. Таким образом, преобразование файлов MSG или EML в HTML упрощает их просмотр, особенно для получателей, которые могут не иметь совместимых почтовых клиентов или программного обеспечения.

Кроме того, HTML-файлы легче архивировать и они остаются в формате, который можно искать и индексировать.

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

Статья охватывает следующие темы:

Java API для преобразования файлов EML/MSG в HTML

Чтобы выполнить задачу преобразования файлов EML/MSG в HTML, мы будем использовать Aspose.Email для Java. Этот API для обработки электронной почты позволяет пользователям управлять электронными письмами и работать с форматами файлов популярных почтовых клиентов, таких как Thunderbird, Outlook и других. Чтобы получить API, вы можете либо скачать, либо установить его из нашего репозитория.

Преобразование файлов EML/MSG в HTML с сохранением изображений отдельно

Типичный файл MSG имеет следующий вид:

Вид файла MSG

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

Вид HTML файла

Ниже приведен фрагмент кода, демонстрирующий процесс преобразования электронного сообщения в формате MSG или EML в HTML-файл с изображениями, которые сохраняются в целевой директории. Код выполняет следующие шаги:

  1. Сначала указывает исходные и целевые пути для исходного файла MSG/EML и HTML-файла соответственно, а также целевую директорию для ресурсов.
  2. Загружает файл MSG или EML с помощью метода MailMessage.load.
  3. Создает объект HtmlSaveOptions и устанавливает свойство ResourceRenderingMode на SaveToFile.
  4. Определяет метод invoke для SaveResourceHandler объекта HtmlSaveOptions.
  5. Создает целевую директорию для ресурсов внутри метода invoke, если она еще не существует.
  6. Сохраняет каждый ресурс в файл с именем файла внутри метода invoke, основываясь на типе содержимого ресурса.
  7. Вызывает метод 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.

Изображение внутри HTML в текстовом редакторе

Ниже приведен фрагмент кода, демонстрирующий, как преобразовать файл MSG или EML в формат HTML на Java и сохранить изображения внутри HTML. Код выполняет следующие шаги:

  1. Определяет исходные и целевые пути для файла электронной почты и выходного HTML.
  2. Загружает файл MSG или EML с помощью метода MailMessage.load.
  3. Создает новый экземпляр класса HtmlSaveOptions, который позволяет настраивать, как электронная почта будет сохранена в HTML.
  4. Настраивает экземпляр HtmlSaveOptions для встраивания ресурсов, включая изображения, непосредственно в HTML.
  5. Вызывает метод 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, его функциях и возможностях из нашей документации.

См. также