我有一个Java Maven项目,我使用org.apache.camel
来获取邮件和附件信息。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mail</artifactId>
<version>2.17.0</version>
</dependency>
给定一个Exchange
对象,我使用此代码来获取附件:
Message message = exchange.getIn().copy();
message.getAttachments()
其中messageCopy.getAttachments()
返回将Map<String, DataHandler>
映射到attachment-file-Name
的{{1}}。
当邮件具有单个附件或名称不同的附件时,此代码有效。当我有两个具有相同名称的附件时,由于地图结构,只返回一个附件(另一个只是被覆盖)。
有没有人有同样的问题和/或知道另一种方法来获得两个(或更多)同名附件?
由于
答案 0 :(得分:1)
我记得在上一个项目中曾遇到过这个问题。我认为解决方法是将原始邮件拆分为N条单独的邮件,以便即使它们具有相同的名称,也可以处理它们。
看看骆驼SplitAttachmentsExpression
。
可以找到here的现有单元测试。