如何从数据库中读取值并将其与Mule 3中的SMTP连接器一起使用

时间:2011-09-21 13:18:52

标签: mule

我想从数据库中读取一些电子邮件详细信息,这是我的连接器的样子:

<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代码的情况下做到这一点?

1 个答案:

答案 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>