Apache Camel: сохранить электронную почту в файл (.eml), используя маршруты - PullRequest
0 голосов
/ 13 июня 2019

Я опрашиваю учетную запись электронной почты, и это прекрасно работает.Я также хотел бы иметь резервную копию полученных сообщений в виде файлов (.eml).Я пробовал что-то вроде этого:

from( mailurl+"?username="+username+"&password="+password+"&"+options)
.to( "file://backup?allowNullBody=false&forceWrites=true");

Я получаю файл для каждого полученного письма с сгенерированным именем, например ID-MACHINENAME-2443-1211718892437-1-0, в нужном каталоге, но файл пуст.Я знаю, что могу создать свой собственный файл .eml, используя процессор, но разве нет более простого способа сделать это, используя только маршруты?Почему созданный файл пуст?

1 Ответ

0 голосов
/ 03 июля 2019

Решение, которое я нашел для создания резервной копии каждого входящего электронного письма в файл .eml, создает такой процессор:

    public void process(Exchange ex) throws Exception {

    javax.mail.Message mailMessage = ex.getIn(org.apache.camel.component.mail.MailMessage.class).getMessage();

    File file = new File( "backupDirectory", "DesiredFileName.eml");
    DataOutputStream os = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));       
    mailMessage.writeTo(os);
    os.close();
}

Это решение копирует все сообщение, включая все заголовки, текст и вложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...