微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用sendgrid api将json对象作为html发送

如何解决如何使用sendgrid api将json对象作为html发送

我正在尝试使用 sendgrid API 发送电子邮件。我希望消息的正文包含一个格式为 HTML 的 json 对象。

{
    "glossary": {
        "title": "example glossary","GlossDiv": {
            "title": "S","GlossList": {
                "GlossEntry": {
                    "ID": "SGML","SortAs": "SGML","Glossterm": "Standard Generalized MarkuP Language","Acronym": "SGML","Abbrev": "ISO 8879:1986","GlossDef": {
                        "para": "A Meta-markuP Language,used to create markuP Languages such as DocBook.","GlossSeeAlso": ["GML","XML"]
                    },"GlossSee": "markup"
                }
            }
        }
    }
}

但是电子邮件的正文看起来像这样:

{ “词汇表”:{ "title": "示例词汇表",“光泽度”:{ "title": "S",“光泽列表”:{ “光泽条目”:{ "ID": "SGML","Glossterm": "标准通用标记语言","缩写": "SGML","缩写": "ISO 8879:1986",“光泽度”:{ "para": "一种元标记语言,用于创建 DocBook 等标记语言。","XML"] },"GlossSee": "标记" } } } } }

当我将 json 对象字符串化并使用 sendgrid API 作为 HTML 发送时,电子邮件正文只是一个长文本字符串,难以阅读:( 我也尝试过 NPM 包 retty-print-json

所有这些都会产生相同的结果:电子邮件正文只是一个长文本字符串

字符串化

let html = stringify.JSON(getStats);   
        const msg = {
            to: 'foo@foo.com',from: 'foo@foo.com',subject: datasetTitle,html: html
        }

prettyPrintJson

let html = prettyPrintJson.toHtml(getStats);
        const msg = {
            to: 'foo@foo.com',html: html
        }

解决方法

空格包括换行符,默认在 HTML 中折叠。将漂亮打印的 JSON 包裹在 <pre></pre> 中,输出应正确显示。您不需要包来添加换行符,只需在序列化 JSON.stringify(obj,undefined,4)

时指定额外的参数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。