在 mandrill 模板中使用 Ruby/rails 变量
Posted
技术标签:
【中文标题】在 mandrill 模板中使用 Ruby/rails 变量【英文标题】:Using Ruby/rails variables in a mandrill template 【发布时间】:2013-12-24 11:01:43 【问题描述】:是否可以在 Mandrill 模板上使用您的 rails 变量?
我有一个应用程序,用户可以通过电子邮件收到有关某些操作的通知,现在它是通过操作邮件程序完成的,而不使用 Mandrill,所以它只是一封没有样式的文本电子邮件。显然,我更喜欢使用山魈模板我已经必须通过变量添加一些动态内容。我看到很多公司在电子邮件通知中使用变量,所以我认为这是可能的,我只是没有找到很多有用的文章解释它是如何完成的。如果您可以将我指向有用的文章或仅回答问题,那将非常有帮助!现在,我已经使用 Mailchimp 制作了模板,然后将其发送到 mandrill,它就可以使用了。我的应用程序已经具有 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
这里)。
【讨论】:
以上是关于在 mandrill 模板中使用 Ruby/rails 变量的主要内容,如果未能解决你的问题,请参考以下文章