通过 SendGrid API 调用,是否有一种方法可以检索动态模板生成的 HTML 电子邮件正文?

10
我们有一个网站,我们的代理商在其中输入数据,然后通过 SendGrid 的动态模板将该数据发送给客户。
邮件内容包括基于输入数据的许多计算,因此我们希望我们的代理商在向客户发送邮件之前能够预览和验证内容。
是否有一种方法可以使用 SendGrid API 发送带有我们的 JSON 对象的请求,但不是将电子邮件发送给客户,而是接收生成的电子邮件正文,以便我们可以将其显示给代理商,让他们首先审查它?

我正在寻找类似这样的东西。你有没有找到一种提供“数据”然后进行替换的方法 - 或者这是可以手动使用handlebars完成的事情? - DauleDK
我粘贴的答案有效,但只返回带有手柄模板的模板。因此,您需要通过API获取它,并进行自己的本地手柄处理。我实际上从未使用过这个,因为那样做。 - daybreaker
好的,我目前正在尝试使用Cypress + Ethereal Mail组合来解决同样的问题。看起来效果很好,但是为了测试发送所有这些电子邮件感觉有点可怕。 - DauleDK
有人找到过解决方案,可以检索使用SendGrid模板的send data渲染的HTML内容吗? - Hammad
2个回答

6

我回答了自己的问题。API v3拥有获取动态事务模板和模板版本的GET方法。

API调用:

/templates/{template_id}/versions/{version_id}

使用 sendgrid-ruby:

sg = SendGrid::API.new(api_key: sendgrid_api_key)
sg.client.templates._(template_id).versions._(template_version_id).get

(注:`template_version_id`是模板版本的ID而不是名称。)
响应正文包括一个称为`html_content`的字段,其中包含带有任何手柄模板的动态模板版本的完整呈现HTML。

嗨@daybreaker,在模板中替换变量后,html_content是否已经生成?我正在寻找一种获取替换变量后的HTML内容的方法。我想传递变量及其数据并获取生成的电子邮件内容。有什么想法吗? - girish
@girish 你只需要使用handlebars来呈现HTML,以查看变量替换后的效果。请参阅https://handlebarsjs.com/。 - Matthew Purdon

2
您可以通过Postman进行API调用,如下所示: https://api.sendgrid.com/v3/templates/d-d44fdfsdfdsfd342342343 需要使用Bearer令牌和Sendgrid API密钥,例如:
Bearer SG.Fvsdfsdjfksdfsdfjsdkjfsdfksjdfsdfksjdfkjsdkfjsdf
响应内容如下:
{
"id": "d-d55d081558a641b48a8a1145b4549fbe",
"name": "Bt_Payment_Reminder (Active)",
"generation": "dynamic",
"updated_at": "2021-12-21 07:35:12",
"versions": [
    {
        "id": "a95c3652-e49f-4608-a9dd-5aa4831c2dc3",
        "user_id": 11702857,
        "template_id": "d-d55d081558a641b48a8a1145b4549fbe",
        "active": 1,
        "name": "Bt_Payment_Reminder_Updated",
        "html_content": "Hello {{firstName}}",
        "plain_content": "Hello {{firstName}}",
        "generate_plain_content": true,
        "subject": "{{subject}}",
        "updated_at": "2021-12-21 07:37:48",
        "editor": "code",
        "test_data": "{\n    \"firstName\":\"Virendra\"}",
        "thumbnail_url": "sdasdasdasdasdasdsd"
    }
]

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接