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.getIn().setHeader(...)プロデューサー/バインディングが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 に答える
0

基本的に、Exchangeごとに1つの件名があるため、電子メールごとに異なる件名が必要な場合は、スプリッターを使用して、各電子メールを個別のExchangeとして個別に処理します。

于 2013-01-29T13:22:25.083 に答える