如何从数据库读取值,并在Mule 3中与SMTP连接器一起使用它们



我想从DB中读取一些电子邮件详细信息,下面是我的连接器的样子:

<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代码?

使用转换器应该足以实现您的目标:入站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>

最新更新