有没有办法通过 SendGrid API 调用检索生成的 HTML 动态模板的电子邮件正文?

Is there a way to retrieve the generated HTML email body of a dynamic template via SendGrid API call?

我们有一个网站,我们的代理会在其中输入一些数据,然后这些数据会通过 SendGrid 动态模板发送到客户端。

邮件内容包含大量基于输入数据的计算,所以我们希望我们的代理能够在发送给客户之前先预览邮件并验证内容。

有没有办法使用 SendGrid API 通过我们的 json 对象发送请求,而不是将电子邮件发送给客户端,而是接收生成的电子邮件正文,以便我们可以将其显示给代理并让他们先查看?

回答了我自己的问题。 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。

您可以通过邮递员拨打 API 电话:

https://api.sendgrid.com/v3/templates/d-d44fdfsdfdsfd342342343

使用 Bearer 令牌和 Sendgrid API 密钥,例如:

承载者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"
    }
]

}