2013-10-23 37 views
1

我想從數據庫中讀取一些電子郵件詳細信息。你能幫助我嗎? 我的配置XML:如何從數據庫中獲取值並將它們用於Mule中的SMTP連接器3.4

<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="[email protected]" from="[email protected]" subject="${smtp.subject}" responseTimeout="10000" doc:name="SMTP"/>. 
</flow> 

我有一個錯誤:表達式求值「地圖有效載荷」與表達「名」返回null,但被要求的值。

在此先感謝。

+0

我包括我的配置xml和錯誤。我想從數據庫中讀取電子郵件主題和正文。 – user2878774

回答

1

您的JDBC出站端點之後的負載是地圖列表,而不是地圖,因此您不能使用地圖負載。
只要你有至少1列,你可以這樣訪問:

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

這很有幫助。謝謝。我還有一個問題。我有一個只有幾行的數據庫表,但它只發送第一行。我怎樣才能配置它同時發送所有不同的消息? – user2878774

+0

如果我有超過1行,我該如何發送消息? – user2878774

+0

你可以讓記錄器在JDBC出站後記錄有效負載並讓我們知道輸出嗎? – Seba

相關問題