【问题标题】:Using Ruby/rails variables in a mandrill template在 mandrill 模板中使用 Ruby/rails 变量
【发布时间】:2013-12-24 11:01:43
【问题描述】:
是否可以在 Mandrill 模板上使用您的 rails 变量?
我有一个应用程序,用户可以通过电子邮件收到有关某些操作的通知,现在它是通过操作邮件程序完成的,而不使用 Mandrill,所以它只是一封没有样式的文本电子邮件。显然,我更喜欢使用山魈模板我已经必须通过变量添加一些动态内容。我看到很多公司在电子邮件通知中使用变量,所以我认为这是可能的,我只是没有找到很多有用的文章解释它是如何完成的。如果您可以将我指向有用的文章或仅回答问题,那将非常有帮助!现在,我已经使用 Mailchimp 制作了模板,然后将其发送到 mandrill,它就可以使用了。我的应用程序已经具有 Mandrill 配置并且可以正常工作(我将它用于不包含变量的静态电子邮件)。我真正需要做的就是配置它以允许我使用变量。
提前致谢。节日快乐,战鹰!
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-4
mailchimp
mandrill
【解决方案1】:
一种方法是在 Mandrill 模板中使用merge tags,然后使用global_merge_vars(所有收件人)或merge_vars(每个收件人)消息选项来填充模板。
这不是很令人兴奋的方法,但效果很好。
简而言之,解决办法是把标签像:
*|MYTAG|*
模板中的任何位置。然后,发送调用只需要填充正确的选项。所有参与者都在这里:
mandrill = Mandrill::API.new('my_api_key')
template_name = "my-template-name"
template_content = [] # See doc, not related to the issue at hand.
message = {
to: [{email: 'smith@example.com'}],
headers: {"Reply-To" => "noreply@example.com"},
merge: true,
global_merge_vars: [
{name: 'mytag', content: "Hello, World"}
]
}
mandrill.messages.send_template(template_name, template_content, message)
这应该发送一封电子邮件,其中标签替换为相应的内容(Hello, World 这里)。