我想要使用Talend数据集成为了获取Excel电子表格的行并使用电子表格中列出的电子邮件来获取tSendMail组件的地址列表以使用。使用Talend的Tsendmail向多个收件人发送电子邮件
到目前为止,我有:tFileInputExcel - > tFlowToIterate - > tSendMail。
我已经看过这些twothreads但是在理解我应该从哪里出发的地方没有运气。
我想要使用Talend数据集成为了获取Excel电子表格的行并使用电子表格中列出的电子邮件来获取tSendMail组件的地址列表以使用。使用Talend的Tsendmail向多个收件人发送电子邮件
到目前为止,我有:tFileInputExcel - > tFlowToIterate - > tSendMail。
我已经看过这些twothreads但是在理解我应该从哪里出发的地方没有运气。
你似乎是在正确的轨道上。
正如你所收集的,你需要迭代地触发tSendMail组件。
Talend在组件之间的普通行连接器将数据流从一个组件传递到另一个组件。如果你使用迭代链接,那么它将只发送第一行处理到其他的subjob。
这里你基本上有一个Excel文件中的电子邮件地址列表,所以你想遍历列表,将它们传递给tSendMail组件。
如果连接tFlowToIterate组件添加到您tFileInputExcel组件则tFlowToIterate将有效地只是触发tSendMail组件一次输入文件的每一行数据。它并不直接传递任何数据。
取而代之的是,tFlowToIterate将数据移动到globalMap
,在那里它可以被任何下游组件读取。要使用这些数据,您可以使用类似((String)globalMap.get("row1.email"))
的东西访问它。如果按Ctrl +空间,例如,“收件人”字段中tSendMail组件了Talend应显示可用的变量列表:
在这里你可以看到关于tFlowToIterate_1成分,但也有一些元数据“电子邮件”列是Excel文件架构的唯一列。如果我们选择这个,那么它会自动为我们提供组件globalMap.get
(在我的情况下,它是前面提到的((String)globalMap.get("row1.email"))
,因为我离开了tFlowToIterate的复选框作为默认值)。
然后,它只是一个正确配置的tSendMail组件,并使用从办事处一览作为你的“收件人”属性的值事情:
使用我们可以做更复杂的事情太多这个同样的想法。例如,我们可能在Excel文件中有一个自定义的邮件正文,并且还有收件人的名称(也可能已经从tFlowToIterate之前的电子邮件地址解析过),所以我们可以这样做: