1

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

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

然后,我想使用这些详细信息发送一堆邮件。我希望入站端点是 JDBC 连接器,出站端点是 SMTP 连接器,但我不知道如何存储和使用从该表中读取的数据。有没有办法在不使用 Java 代码的情况下做到这一点?

4

1 回答 1

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>
于 2011-09-21T13:59:37.760 回答