dynamic_template_data 不适用于 sendgrid 和 azure 函数集成
dynamic_template_data doesn't work with sendgrid and azure function integration
尝试将事务模板与 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
发送完全相同的对象时
API 使用 postman 一切正常。
很想在这里获得有关我在 azure 函数上做错了什么的帮助。
您已正确完成所有操作,您可以按预期收到电子邮件。
SDK版本问题。 属性 dynamic_template_data
刚刚在最新 9.10.0 Sendgrid C# SDK 中添加,但是绑定扩展仍然使用旧版本,不知道 dynamic_template_data
是什么。
对于2.x函数(在Azure portal上查看Function应用程序设置,查看运行时版本:2.xxx(~2)),我们可以在更新扩展之前手动安装新版本SDK。
如果你在本地开发
- 进入函数项目目录,删除bin、obj文件夹。
- 在功能项目下编辑extensions.csproj,添加最新版本的Sendgrid
<PackageReference Include="Sendgrid" Version="9.10.0" />
。
- 在此目录下打开控制台(终端,Powershell等),输入
func extensions install
恢复包。
Azure 门户上的其他内容
- 停止功能应用。
- 通过平台功能->高级工具(Kudu)->调试控制台(CMD)访问kudu控制台
- 导航到 D:\home\site\wwwroot
- 删除bin目录
- 编辑 extensions.csproj,添加
<PackageReference Include="Sendgrid" Version="9.10.0" />
并保存更改。
- 在下面的控制台中,输入
dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget
- 看到
Build succeeded
后,启动功能应用
对于1.x函数(运行时~1),恐怕我们必须使用sendgrid node module手动发送电子邮件,1.x函数中的Sendgrid版本被锁定因此不能待更新。
尝试将事务模板与 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
发送完全相同的对象时
API 使用 postman 一切正常。
很想在这里获得有关我在 azure 函数上做错了什么的帮助。
您已正确完成所有操作,您可以按预期收到电子邮件。
SDK版本问题。 属性 dynamic_template_data
刚刚在最新 9.10.0 Sendgrid C# SDK 中添加,但是绑定扩展仍然使用旧版本,不知道 dynamic_template_data
是什么。
对于2.x函数(在Azure portal上查看Function应用程序设置,查看运行时版本:2.xxx(~2)),我们可以在更新扩展之前手动安装新版本SDK。
如果你在本地开发
- 进入函数项目目录,删除bin、obj文件夹。
- 在功能项目下编辑extensions.csproj,添加最新版本的Sendgrid
<PackageReference Include="Sendgrid" Version="9.10.0" />
。 - 在此目录下打开控制台(终端,Powershell等),输入
func extensions install
恢复包。
Azure 门户上的其他内容
- 停止功能应用。
- 通过平台功能->高级工具(Kudu)->调试控制台(CMD)访问kudu控制台
- 导航到 D:\home\site\wwwroot
- 删除bin目录
- 编辑 extensions.csproj,添加
<PackageReference Include="Sendgrid" Version="9.10.0" />
并保存更改。 - 在下面的控制台中,输入
dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget
- 看到
Build succeeded
后,启动功能应用
对于1.x函数(运行时~1),恐怕我们必须使用sendgrid node module手动发送电子邮件,1.x函数中的Sendgrid版本被锁定因此不能待更新。