1

显然这是在 Java 中。我已经设置了一个到 SMTP 路由的骆驼路由,但我希望邮件的主题是动态的,并且基于它收到的输入消息

例如主题“第 52 行已关闭”

电子邮件的正文很好,看起来很完美。但我似乎无法设置电子邮件的主题,它总是被接收为“无主题”

在我使用的骆驼处理器中

Message msg = exchange.getOut();

// This works perfectly
msg.setBody( "Some body stuff " + lineProblem + " and some other details"); 

// PROBLEM - This has no effect (the order of the statements has no effect)
msg.setHeader( "Subject", " line " + lineProblem + " is down" );

但它总是在收件箱中收到“无主题”

我可以看到在端点级别和路由级别设置主题的其他方法,但是当然这些都不会让我在消息级别设置主题

有任何想法吗?

4

2 回答 2

0

本质上,每个 Exchange 都有一个主题,因此如果您需要在每封电子邮件上使用不同的主题,请使用拆分器将每封电子邮件作为单独的 Exchange 单独处理

于 2013-01-29T13:22:25.083 回答
0

尝试exchange.getIn().setHeader(...)作为 Producer/Binding 迭代 IN 消息头以填充主题等。

有关更多信息,请参阅 MailBinding.appendHeadersFromCamelMessage() 代码:

https://svn.apache.org/repos/asf/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java

于 2013-01-08T19:10:09.030 回答