在 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 变量的主要内容,如果未能解决你的问题,请参考以下文章

Mandrill 在模板中创建激活码

在模板中找不到发送到 mandrill

在 Mandrill 中使用模板发送电子邮件

在 mandrill 模板中放置 CSS 的位置

如何使用 mandrill 发送 mailchimp 模板?

“this”似乎在车把“每个”助手中的旧迭代中具有价值(在 mandrill 模板中使用)