2014-08-29 128 views
1

我想要使用Talend數據集成爲了獲取Excel電子表格的行並使用電子表格中列出的電子郵件來獲取tSendMail組件的地址列表以使用。使用Talend的Tsendmail向多個收件人發送電子郵件

到目前爲止,我有:tFileInputExcel - > tFlowToIterate - > tSendMail。

我已經看過這些twothreads但是在理解我應該從哪裏出發的地方沒有運氣。

回答

1

你似乎是在正確的軌道上。

正如你所收集的,你需要迭代地觸發tSendMail組件。

Talend在組件之間的普通行連接器將數據流從一個組件傳遞到另一個組件。如果你使用迭代鏈接,那麼它將只發送第一行處理到其他的subjob。

這裏你基本上有一個Excel文件中的電子郵件地址列表,所以你想遍歷列表,將它們傳遞給tSendMail組件。

Simple job setup and layout

如果連接tFlowToIterate組件添加到您tFileInputExcel組件則tFlowToIterate將有效地只是觸發tSendMail組件一次輸入文件的每一行數據。它並不直接傳遞任何數據。

取而代之的是,tFlowToIterate將數據移動到globalMap,在那裏它可以被任何下游組件讀取。要使用這些數據,您可以使用類似((String)globalMap.get("row1.email"))的東西訪問它。如果按Ctrl +空間,例如,「收件人」字段中tSendMail組件了Talend應顯示可用的變量列表:

Variables available when pressing ctrl+space

在這裏你可以看到關於tFlowToIterate_1成分,但也有一些元數據「電子郵件」列是Excel文件架構的唯一列。如果我們選擇這個,那麼它會自動爲我們提供組件globalMap.get(在我的情況下,它是前面提到的((String)globalMap.get("row1.email")),因爲我離開了tFlowToIterate的複選框作爲默認值)。

然後,它只是一個正確配置的tSendMail組件,並使用從辦事處一覽作爲你的「收件人」屬性的值事情:

tSendMail configuration with the data from the email field being used for the "To" property

使用我們可以做更復雜的事情太多這個同樣的想法。例如,我們可能在Excel文件中有一個自定義的郵件正文,並且還有收件人的名稱(也可能已經從tFlowToIterate之前的電子郵件地址解析過),所以我們可以這樣做:

A more complicated tSendMail configuration that uses the customer name in the email subject and then a custom message body taken from the Excel file

相關問題