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