我想从数据库中读取一些电子邮件详细信息,这是我的连接器的样子:
<jdbc:connector name="dbConnector" dataSource-ref="dataSource">
<jdbc:query key="sqlQuery"
value="SELECT from, to, subject, body FROM email WHERE status='PENDING'" />
<jdbc:query key="sqlQuery.ack"
value="UPDATE email SET status='IN PROGRESS' WHERE id=#[map-payload:id]" />
</jdbc:connector>
然后我想用这些细节发送一堆邮件。我希望 inbound-endpoint 将是JDBC Connector,而 outbound-endpoint 将是SMTP Connector,但我不知道如何存储和使用我读取的数据从那张桌子。有没有办法在不借助Java代码的情况下做到这一点?
答案 0 :(得分:1)
使用变换器应该足以实现您的目标:入站JDBC端点将为您提供Map有效负载。从此有效内容中,您将提取出站SMTP端点和消息正文所需的属性:
<!-- Set SMTP endpoint properties -->
<message-properties-transformer>
<add-message-property key="subject" value="#[map-payload:subject]"/>
...
</message-properties-transformer>
<!-- Set the message Body as new payload -->
<expression-transformer>
<return-argument evaluator="map-payload" expression="body"/>
</expression-transformer>