Ruby 在 Rails 和 SendGrid 上;动态模板数据未填充
Ruby on Rails and SendGrid; dynamic template data is not populating
我对 Rails 和 SendGrid 上的 Ruby 还很陌生。
我不明白为什么下面的代码示例不起作用?它确实使用正确的模板发送了一封电子邮件,但没有填写动态数据。感谢任何 input/insight。
require 'sendgrid-ruby'
include SendGrid
mail = SendGrid::Mail.new
mail.template_id = 'template id'
mail.from = Email.new(
email: 'someone@somewhere.com',
name: 'ABC')
personalization = SendGrid::Personalization.new
personalization.add_to(Email.new(email: 'someone@somewhere.com', name: 'ABC'))
personalization.add_dynamic_template_data(
'variable' => [
{ 'first_name' => 'John' },
{ 'last_name' => 'Doe' },
{ 'email' => 'john@doe.com' },
{ 'message' => 'The message is as follows' }
]
)
mail.add_personalization(personalization)
sgp = SendGrid::API.new(api_key: ENV['sendgrid_api_key'])
response = sgp.client.mail._('send').post(request_body: mail.to_json)
模板代码如下所示。
Hello from {{first_name}} {{last_name}}.
{{message}}
最后的结果是没有填写变量值。
Hello from .
此处为 Twilio SendGrid 开发人员布道师。
您添加的动态数据比模板复杂。您可以只发送一个哈希值,而不是发送一个哈希值数组作为动态数据。试试这个:
personalization.add_dynamic_template_data({
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john@doe.com',
'message' => 'The message is as follows'
})
我对 Rails 和 SendGrid 上的 Ruby 还很陌生。
我不明白为什么下面的代码示例不起作用?它确实使用正确的模板发送了一封电子邮件,但没有填写动态数据。感谢任何 input/insight。
require 'sendgrid-ruby'
include SendGrid
mail = SendGrid::Mail.new
mail.template_id = 'template id'
mail.from = Email.new(
email: 'someone@somewhere.com',
name: 'ABC')
personalization = SendGrid::Personalization.new
personalization.add_to(Email.new(email: 'someone@somewhere.com', name: 'ABC'))
personalization.add_dynamic_template_data(
'variable' => [
{ 'first_name' => 'John' },
{ 'last_name' => 'Doe' },
{ 'email' => 'john@doe.com' },
{ 'message' => 'The message is as follows' }
]
)
mail.add_personalization(personalization)
sgp = SendGrid::API.new(api_key: ENV['sendgrid_api_key'])
response = sgp.client.mail._('send').post(request_body: mail.to_json)
模板代码如下所示。
Hello from {{first_name}} {{last_name}}.
{{message}}
最后的结果是没有填写变量值。
Hello from .
此处为 Twilio SendGrid 开发人员布道师。
您添加的动态数据比模板复杂。您可以只发送一个哈希值,而不是发送一个哈希值数组作为动态数据。试试这个:
personalization.add_dynamic_template_data({
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john@doe.com',
'message' => 'The message is as follows'
})