Я изучал обратное (распаковывая MHTML/EML в файлы), и, хотя для этого не было простой утилиты на основе Java, я обнаружил, что библиотеки Apache Mime4J очень полезны (и проще, чем JavaMail).
Вы можете найти код, который я здесь: общий How to read or parse MHTML (.mht) files in java
В вашем случае, чтобы построить MHTML, если вы не можете найти что-нибудь более простой подход может быть:
- Создание объекта Message который имеет многоточечное тело.
- Прочитайте все файлы в папке с помощью Streams, добавьте их как BodyParts Multipart с их типом mime (Mime4j включает в себя кодировщик/декодер потока Base64).
- Убедитесь, что ссылки на странице html указывают на необходимые части тела (возможно, они могут вставлять исходное имя файла в качестве ссылки?).
- Напишите объект Message в файл mht или поток ответов.
Для изображений это, вероятно, будет довольно сложным и неприятным, поскольку они должны быть закодированы до base64 (строковое представление двоичных файлов). В частности, для больших файлов изображений полученный html-файл станет большим и, вероятно, будет иметь проблемы с производительностью в некоторых браузерах. –