Camel Mail - 动态电子邮件主题 - 无法更改标题

时间:2013-01-08 16:20:45

标签: email dynamic header apache-camel subject

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

e.g。主题“第52行已关闭”

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

在Camel处理器中我使用

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" );

但它始终在收件箱中收到“无主题”

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

任何想法?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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