Java MimeMessage для eml файла со всеми вложениями

У меня есть входящий MimeMessage в моем почтовом сервере ДЖЕЙМС. Я хочу, чтобы создать файл eml, дамп сообщения полностью. Я пытался использовать writeTo Метод MimeMessage - результирующий файл содержит только текстовое тело письма. Вложения не записываются в файл eml. Мой код что-то вроде

String logFileName = "dumpNow.eml";
incomingEmail.getMessage().writeTo(new FileOutputStream(new File(logFileName)));

Я не получаю многокомпонентный контент в дампе. Есть ли Util для этого? Apache Mimeutils также дает тот же результат.

1 ответ

Попробуй это:

// Create your attachement file
File emlFile = new File("myFile.eml");
emlFile.createNewFile();
incomingEmail.getMessage().writeTo(new FileOutputStream(emlFile));

MimeBodyPart attachment = new MimeBodyPart();

DataSource source = new FileDataSource(emlFile);

attachment.setDataHandler(new DataHandler(source));
attachment.setHeader("Content-Type", "application/octet-stream");
attachment.setFileName("myFileName.eml");
attachment.setDescription("My file description");
attachment.setDisposition(Part.ATTACHMENT);

multipart.addBodyPart(attachmentFile);

Я думаю, это потому, что вы пропустили установку заголовка и расположения в вашем коде.

Надеюсь, поможет,

Другие вопросы по тегам