我目前正在努力将发送网格中的邮件发送与我们的内部CRM系统集成。我正在使用的用例是,当我们的CRM中按下特定按钮时,向单个客户发送自定义电子邮件。我在 sendgrid 中创建了一个包含车把的动态模板,我想用我们 CRM 系统中的值(例如客户名称)替换它。我的目的是在发送电子邮件时使用 sendgrid api endpoint。发送后,我需要获取发送给客户的 HTML,以便它可以保留在我们的数据库中。
“邮件发送”涵盖了其中的大部分要求,但据我了解,邮件发送不提供响应正文(只是一个状态代码),因此我无法获得 HTML 的副本,我想包含插入的值代替车把。
我注意到您可以查询电子邮件活动提要 API 并按主题/电子邮件过滤以找到发送的消息(我尝试过),但响应不包含 HTML。
我还研究了单次发送作为提供响应正文的替代方案,但这只允许您发送到一个片段或联系人列表,并且似乎更适合发送给选定人员的电子邮件,而不仅仅是一个。
谁能建议一种方法让我能够从“邮件发送”选项中实现所有内容,同时保留已发送的电子邮件的 HTML,包括其车把替换?
我暂时一直在邮递员中进行测试 api 调用,所以在这个阶段邮递员实现会很好。我最终将使用 c# ASP.Net Web 表单解决方案,查询 sendgrid api 终结点。我也感谢可能需要通过发送网格后台进行一些配置。
成功的邮递员请求发送“邮件发送”:
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"
}
在发送网格后台保存的动态模板中包含的 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>
我找到了解决这个问题的方法,并认为如果另一个人面临同样的问题,我会分享。我发现了一个用于在 .NET 应用程序中使用 Handlebars.js 模板的 nuget 包。[https://github.com/Handlebars-Net/Handlebars.Net][1] 我首先查询了设计 sendgrid api endpoint,以检索包含车把作为响应的模板。然后,我使用 Handlebars.net 为我的 CRM 输入动态值,从而生成我需要保留的 html。我终于通过 api 执行了 sendgrid 邮件发送,使用我刚刚填充的 html 以及邮件发送是否成功错误我在数据库中保留了 html。