通过 Mule 4 发送电子邮件时 JSON 数组到表结构格式

Posted

技术标签:

【中文标题】通过 Mule 4 发送电子邮件时 JSON 数组到表结构格式【英文标题】:JSON array to Table structure formatting while sending email via Mule 4 【发布时间】:2021-06-12 08:49:00 【问题描述】:

我需要以表格格式发送错误报告,需要以电子邮件正文的形式发送。 我正在将错误报告构建为 JSON 数组,我需要进行 html 转换以将其构建为表格格式。

以下是 JSON 数组和电子邮件正文的预期结果。

[  "templateID": "72", "houseNumber": "SR0000V-test", "dataMigrationSourceId": 2102866, "errorDescription": "Process aborted:CatalogItem not found in Target system!" ,  "templateID": "", "houseNumber": "SR0000V-test", "dataMigrationSourceId": 2102866, "errorDescription": "Process aborted: TemplateID is not present!"  ]

预期的电子邮件正文:

如果格式不完全相同,则需要类似于表结构或更可读格式的结果。 有人可以帮我在 Mule 4 中构建这种格式

谢谢

【问题讨论】:

【参考方案1】:

Html 表(有效负载)

您可以在 @() 中自定义您的 CSS。我只是保留了一个对你有用的样本

%dw 2.0
output application/xml writeDeclaration=false
---

    table @(style: "width: 50%; border: 1px solid grey; font-family: Monospace" ): 
        tr @(bgcolor: "#6c7ae0",style: "color: white !important; font-size:14px; "): 
            th @() : "templateId",
            th @() : "houseNumber",
            th @() : "dataMigrationSourceId",
            th @() : "errorDescription"
        ,
        (payload map (item, index) -> 
            tr @(align:"center", style: "color: #666666; font-size:12px; font-weight: 500; width:10%"): 
                td @(): item.templateID,
                td @(): item.houseNumber,
                td @(): item.dataMigrationSourceId,
                td @(): item.errorDescription
            
        )
    

解析器模板

我进一步使用解析器模板连接器来编写html内容,因为上面的表格我们将作为嵌入在邮件中的html表格发送。

<html>
  <head></head>
  <body>
    <p>Hello XYZ,</p>
    <p>Please find the error report for today's run. </p>
    <br />
  #[payload]
<br /><br />
<p>This is an automated mail, please do not reply.</p>
<br />
<p>Thanks and Regards,</p>
</body>
</html>

这里的payload表示我们上面创建的html表。

最后,在邮件(发送)连接器中,您可以在正文的内容中将此 html 表称为 payload

注意 - 确保在邮件发送连接器正文中将 ContentType 更改为 text/html

【讨论】:

您好,Karthik,非常感谢您的快速响应,它正在按预期工作。

以上是关于通过 Mule 4 发送电子邮件时 JSON 数组到表结构格式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mule 4 中通过 ActiveMQ 传递属性

从dataweave 2.0 Mule 4中的父JSON对象中提取JSON键值对的子集作为对象

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

如何在 HTTP 请求中发送文件并通过 Mule 中的 FTP 将其上传到文件服务器

在dataweave 2.0 Mule4中将XML CDATA格式转换为JSON格式

是否可以通过 Mule FTP 连接器发送 FTP SITE 命令?