如何从数据库中获取值并将其用于 Mule 3.4 中的 SMTP 连接器



我想从DB阅读一些电子邮件详细信息。你能帮我这个吗?我的配置 xml:

<jdbc-ee:mssql-data-source name="MS_SQL_Data_Source1" user="sa" password="Pa$$w0rd" url="jdbc:sqlserver://192.168.1.156;databaseName=Almaty" transactionIsolation="UNSPECIFIED" doc:name="MS SQL Data Source"/>
<jdbc-ee:connector name="Database" dataSource-ref="MS_SQL_Data_Source1" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
<flow name="DCNotifierFlow1" doc:name="DCNotifierFlow1">
    <quartz:inbound-endpoint jobName="myjob" repeatInterval="3600000" responseTimeout="10000" doc:name="Quartz">
        <quartz:event-generator-job groupName="myjob" jobGroupName="myjob"/>
    </quartz:inbound-endpoint>
    <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryTimeout="-1" doc:name="Database" connector-ref="Database" queryKey="select">
        <jdbc-ee:query key="procedura1" value="call sp_DataCollectionNotify()"/>
        <jdbc-ee:query key="select" value="select name from aaa"/>
    </jdbc-ee:outbound-endpoint>
    <message-properties-transformer doc:name="Message Properties">
        <add-message-property key="subject" value="#[map-payload:name]"/>
    </message-properties-transformer>
    <smtps:outbound-endpoint host="smtp.mail.ru" port="465" user="bekbol_shynar%40mail.ru" password="" to="shiko_18@mail.ru" from="bekbol_shynar@mail.ru" subject="${smtp.subject}" responseTimeout="10000" doc:name="SMTP"/>. 
</flow>

我有一个错误:表达式计算器"map-payload"和表达式"name"返回空值,但需要一个值。

提前谢谢。

JDBC 出站终端节点之后的有效负载是映射列表,而不是映射,因此不能使用映射有效负载。
如果您至少有 1 行,您可以像这样访问它:

#[payload[0]['name']]

最新更新