【问题标题】:Send HTML formatted mail from Pentaho从 Pentaho 发送 HTML 格式的邮件
【发布时间】:2018-03-03 11:46:22
【问题描述】:

我需要遍历一个数据库表并发送一个 html 格式的邮件。

没什么复杂的,一个文本值后跟一个超链接。

我尝试使用 xml 和 xsl 转换,但无法获得预期的结果。

另外,请建议是在 PostGressql 中构建超链接更好,还是在 Pentaho 中也可以

我尝试使用表格输入和 Javascript 步骤。事情是它为每一行输出。我需要组合和连接每一行输出以形成结果 HTML

【问题讨论】:

    标签: html email pentaho pdi spoon


    【解决方案1】:

    使用 Pentaho:使用 table input 获取您的数据,制作 html(例如使用 java script),从 gridconstant 步骤,并将整体交给mail 步骤。

    使用 javascript,您逐行构建了一个名为 html 的 -tag,但您只需要一条消息。所以你用Group by 步骤将它们分组(没有Group field,主题=html,类型=Concatenate strings separated by,值=空)。然后,您可以将其放在Mail 步骤中。

    但是Mail 步骤需要更多信息(收件人、发件人、主题、服务器、端口……)。您可以通过Constant 步骤将它们放入流中。

    鉴于您的用例,您可能会惊讶于您必须将此数据放入流中,而不是在Mail 步骤中提供一个框。这是因为此步骤旨在为每个收件人发送一封个性化的邮件。

    既然您知道该怎么做,就不要向每个人发送 100000 封邮件。

    【讨论】:

    • 另外,请注意,在 Pentaho javascript 中,您不一定需要将 html 代码放入字符串文字中,因为您可以使用 e4x(developer.mozilla.org/en-US/docs/Archive/Web/E4X/…) 中指定的 XML 文字:类似于 var output = <html><head/><body>EDW - <a href="{edw_link}">{edw_link_text}</a></body></html> .您可能需要使用 output.toXMLString() 方法将 xml 转换为字符串(不确定,自从我使用 Pentaho 以来已经有一段时间了)。在大括号中,您可以使用变量或列名 - 它们将被替换为它们的值。
    • 谢谢。您如何使用 javascript 遍历记录。假设我有 2 列。 Column1 Column2 Enterprise Data Warehouse (EDW) 3610985 Enterprise IT Compliance & Controls Group (Equity Edge Online) 3610983
    • 好吧,javascript 步骤不会重新初始化未使用 var 关键字声明的变量。因此,您可以将html_Column2 的值“累积”到html_Column1 中。如果需要初始化html_Column,右击选项卡(命名为Script 1),添加新选项卡,然后右键单击新选项卡(命名为Item 0),将其定义为StartScript,并将@987654344 @那里。
    • 抱歉,我无法关注。我的目的是从每一行获取数据并将其附加到一个全局变量中,以便我可以将全局变量作为 html 内容发送到邮件。
    • 我声明了一个环境变量,附加了每一行的数据,最后将该变量作为 html 内容发送到 Mail 步骤。有用。不确定方法是否正确,但它有效
    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2010-11-26
    • 2014-06-22
    • 2016-06-02
    相关资源
    最近更新 更多