标签: apache-camel-mail

如何读取具有相同文件名的多个附件

我有一个Java Maven项目,我用它org.apache.camel来获取邮件和附件信息.

<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-mail</artifactId>
        <version>2.17.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

给定一个Exchange对象,我使用此代码来获取附件:

Message message = exchange.getIn().copy();
message.getAttachments()
Run Code Online (Sandbox Code Playgroud)

messageCopy.getAttachments()返回一个Map<String, DataHandler>映射attachment-file-NameDataHandler.

当邮件具有单个附件或名称不同的附件时,此代码有效.当我有两个具有相同名称的附件时,由于映射结构,只返回一个附件(另一个被简单地覆盖).

有没有人有同样的问题和/或知道另一种方法来获得两个(或更多)同名附件?

谢谢

java apache-camel apache-camel-mail

7
推荐指数
1
解决办法
233
查看次数

如何在 Camel 3.0 上添加附件

在 Camel 2.x 中,我可以向消息添加附件,例如:

exchange.getOut().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));
Run Code Online (Sandbox Code Playgroud)

但在 Camel 3.0 中这是不可能的。我像迁移指南所说的那样更改我的代码:

exchange.getMessage().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));
Run Code Online (Sandbox Code Playgroud)

但它不起作用。这也不是:

exchange.getIn().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));
Run Code Online (Sandbox Code Playgroud)

有一个想法,来解决这个问题。

我想通过电子邮件发送此附件。

java apache-camel apache-camel-mail

1
推荐指数
1
解决办法
1142
查看次数

标签 统计

apache-camel ×2

apache-camel-mail ×2

java ×2