繁体   English   中英

如何使用动态模板将 Sendgrid 中的 email 发送给单个收件人并获取已发送的 HTML 以供保留

[英]How to send an email in Sendgrid to a single recipient using dynamic template and obtain the sent HTML for retention purposes

我目前正致力于将 sendgrid 中的邮件发送与我们的内部 CRM 系统相集成。 我正在使用的用例是在我们的 CRM 中按下特定按钮时向单个客户发送自定义的 email。 我在包含手柄的 sendgrid 中创建了一个动态模板,我想用我们的 CRM 系统中的值(例如客户名称)替换它。 我的目的是在发送我的 email 时使用 sendgrid api 端点。发送后,我需要获取发送给客户的 HTML,以便它可以保留在我们的数据库中。

“邮件发送”涵盖了大部分要求,但据我所知,邮件发送不提供响应正文(只是一个状态代码),因此我无法获得 HTML 的副本,我想在其中包含值插入车把的位置。

我注意到您可以查询 email 活动提要 api 并按主题/电子邮件过滤以找到已发送的消息(我试过了),但响应不包含 HTML。

我还研究了单一发送作为一种替代方案,它确实提供了一个响应主体,但这只允许你发送到一个部分或一个联系人列表,并且似乎更适合 email 去选择的人,而不是只有一个。

任何人都可以建议我能够通过“邮件发送”选项实现所有内容,同时还保留发送的 email 的 HTML 的方法,包括其车把替换件?

我暂时在 postman 中测试 api 调用,所以在这个阶段 postman 实现会很好。 我最终将使用 c# ASP.Net web forms 解决方案,查询 sendgrid api 端点。 我也很欣赏可能需要通过 sendgrid 后台进行一些配置。

成功 postman 请求发送“邮件发送”:

POST /v3/mail/send
Base url: https://api.sendgrid.com
{
  "personalizations": [
    {
      "to": [
        {
          "email": "my@toemailgoeshere.co.uk",
          "name": "API Testing"
        }
      ],
      "subject": "API testing successful",
      "dynamic_template_data": {
      "sellerName": "Mr Seller",
      "sellerEmail": "Test @ Test",
      "telNumber": "0123 456 789"
        }
    }
  ],
  "from": {
    "email": "my@fromemailgoeshere.co.uk",
    "name": "API Testing"
  },
  "template_id" : "templateidfordesigntemplategoeshere"
}

在 sendgrid 后台保存的动态模板中包含的 html 片段的虚拟示例:

...
<p>Best Regards,</p><br>
<p>{{sellerName}}</p>
<p>My Dummy Title</p>
<p>{{sellerEmail}}</p>
<p>01234 567 890</p>
<p>My Dummy Company</p>

我想保留在内部 CRM 系统中的 html 片段示例:

...
<p>Best Regards,</p><br>
<p>Mr Seller</p>
<p>My Dummy Title</p>
<p>Test @ Test</p>
<p>01234 567 890</p>
<p>My Dummy Company</p>

我找到了解决方案,并认为我会分享以防其他人遇到同样的问题。 我发现了一个 nuget package 用于在 .NET 应用程序中使用 Handlebars.js 模板。 [https://github.com/Handlebars-Net/Handlebars.Net][1] 我首先查询了 designs sendgrid api 端点以检索包含把手的模板作为响应。 然后我在我的 crm 的动态值中使用 Handlebars.net 到 pipe,它产生了我需要保留的 html。 我最终通过 api 执行了 sendgrid 邮件发送,使用我刚刚填充的 html,如果邮件发送导致成功错误,我将 html 保留在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM