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

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

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

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


person Kris    schedule 23.03.2016    source источник
comment
Это должно сработать. Какую версию JavaMail вы используете?   -  person Bill Shannon    schedule 24.03.2016
comment
Есть некоторые проблемы, если сообщение отправлено с компьютеров Mac. Я вижу проблему только для этих сообщений.   -  person Kris    schedule 01.06.2016
comment
Вам нужно будет предоставить более подробную информацию. Каков пример сообщения, которое не удается? Как это не удается? Какую версию JavaMail вы используете? Это точно MimeMessage или подкласс?   -  person Bill Shannon    schedule 01.06.2016


Ответы (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);

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

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

person Beginner    schedule 24.11.2017
comment
Я думаю, это не имеет отношения к вопросу :-). Я упоминал о сбросе составного содержимого в файл (от удаленного к локальному). Кажется, у тебя наоборот. - person Kris; 28.11.2017
comment
Кстати, для этого мне пришлось разобрать дерево тела для электронных писем, которые имели многокомпонентное смешанное содержимое. - person Kris; 28.11.2017