azure - Dynamic_template_data 不适用于 sendgrid 和 azure 函数集成

标签 azure azure-functions sendgrid sendgrid-templates

尝试使用带有 azure 函数 sendgrid 集成(javaScript)的事务模板,我发送以下对象(删除的电子邮件地址等):

const message = 
{  
   "personalizations":[  
      {  
         "to":[  
            {  
               "email":"[MY_EMAIL]",
               "name":"Rotem"
            }
         ],
         "dynamic_template_data":{  
            "rotem_test1":"wow"
         }
      }
   ],
   "from":{  
      "email":"[FROM_EMAIL]",
      "name":"name"
   },
   "reply_to":{  
      "email":"[REPLY_EMAIL]",
      "name":"name"
   },
   "template_id":"[CORRECT_TEMPLATE_ID]",
   "tracking_settings":{  
      "click_tracking":{  
         "enable":true
      }
   }
}
context.done(null,message);

还尝试使用 context.done(null,JSON.stringify(message)) 得到相同的结果: 我收到一封来自正确模板的电子邮件,但没有任何替换。

使用https://api.sendgrid.com/v3/mail/send发送完全相同的对象时 使用 postman 的 API 一切正常。

很想在这里获得帮助,了解我在 azure 功能上做错了什么。

最佳答案

您所做的一切都是正确的,您可以按预期收到电子邮件。

问题是由SDK版本引起的。特性dynamic_template_data刚刚添加到最新9.10.0 Sendgrid C# SDK ,但是绑定(bind)扩展仍然使用旧版本,不知道什么dynamic_template_data是。

对于 2.x 函数(在 Azure 门户上检查函数应用设置,请参阅运行时版本:2.xxx (~2)),我们可以在更新扩展之前手动安装新版本 SDK。

如果您在本地开发

  1. 进入函数工程目录,删除bin、obj文件夹。
  2. 编辑function项目下的extensions.csproj,添加最新版本Sendgrid <PackageReference Include="Sendgrid" Version="9.10.0" /> .
  3. 在此目录中打开控制台(终端、Powershell等),输入func extensions install恢复包。

Azure 门户上的其他内容

  1. 停止函数应用。
  2. 通过平台功能 -> 高级工具(Kudu) -> 调试控制台 (CMD) 访问 kudu 控制台
  3. 导航至 D:\home\site\wwwroot
  4. 删除bin目录
  5. 编辑extensions.csproj,添加<PackageReference Include="Sendgrid" Version="9.10.0" />并保存更改。
  6. 在下面的控制台中输入dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget
  7. 看到 Build succeeded 后,启动函数应用。

对于 1.x 函数(运行时 ~1),恐怕我们必须使用 sendgrid node module 手动发送电子邮件,Sendgrid版本在1.x功能被锁定,无法更新。

关于azure - Dynamic_template_data 不适用于 sendgrid 和 azure 函数集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952276/

相关文章:

azure - Logstash 无法向 Elasticsearch Master 发送加入请求

azure - Azure 存储表中每个读/写事务的最大行数是多少

与 Azure 消费函数结合使用的 Redis 连接最佳实践

azure - 如何使用无服务器为 Azure Functions 指定自定义域和证书?

azure - 每个 Azure 订阅可以拥有多少个辅助角色和 Web 角色?

azure - Databricks Runtime 10.4 LTS - 升级后出现 AnalysisException : No such struct field id in 0, 1

c# - 在Azure Function中运行控制台应用程序的program.cs文件?

python - Django/Sendgrid 表单 HTTP 错误 400 : Bad Request

c# - ASP.NET 3.5 中的 SendGrid Web API

javascript - 触发 Firebase 函数 onUpdate 文档字段值