我正在轮询一个电子邮件帐户,效果很好。我还希望将接收到的消息备份为文件(.eml)。我已经尝试过这样的事情:
from( mailurl+"?username="+username+"&password="+password+"&"+options)
.to( "file://backup?allowNullBody=false&forceWrites=true");
我得到的是每个接收到的电子邮件的文件,该文件的名称在所需目录中为
ID-MACHINENAME-2443-1211718892437-1-0
,但该文件为空。我知道我可以使用处理器制作自己的.eml文件,但是,没有一种更简单的方法可以仅使用路由来做到这一点吗?为什么创建的文件为空? 最佳答案
我找到的将每个传入电子邮件备份到.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();
}
此解决方案将复制整个消息,包括所有标题,正文和附件。
关于java - Apache Camel:使用路由将电子邮件保存到文件(.eml),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56577633/