Mandrill模板合并失败

时间:2015-11-25 15:14:15

标签: ruby templates mandrill

我使用mandrill从我的API发送电子邮件(使用mandrill-api gem发送红宝石),如注册确认电子邮件。

我在模板中有一个合并标记,用于输入用户名:

  

Hello * | USERNAME | *,

     

非常感谢你安装应用程序! ...   ...

我的红宝石代码看起来像这样:

var angle = 30;
var m = r1.transform.baseVal.consolidate().matrix;
var dim = r3.getBBox();

var pos = computePosition(m, dim, angle);

r3.transform.baseVal.initialize(
  svg.createSVGTransformFromMatrix(
    svg.createSVGMatrix()
      .translate(pos.x, pos.y)
      .translate(dim.width/2, dim.height/2)
      .rotate(30)
      .translate(-dim.width/2, -dim.height/2)
  )
)

不幸的是,当我收到电子邮件时,一切都很好(to,name,from,...)但是合并标签在正文中没有被替换,我仍然显示m = Mandrill::API.new ENV['MANDRILL_KEY'] template_name = "app-registration-welcome-email" template_content = [{}] message = { :from_name=> "From Name", :to=>[ { :email => user.email, :name => user.name, } ], :global_merge_vars => [{ :name => "username", :content => user.name }], :merge_language => "mailchimp", :merge => true, :merge_vars => [{ :rcpt => user.email, :vars => [{ :name => "username", :content => user.name }], }], :track_opens => true, } m.messages.send_template template_name, template_content, message 。< / p>

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您只需在USERNAME:global_merge_vars中设置:merge_vars一次。

  • 如果您只向一位收件人发送邮件,那么您执行的操作无关紧要。
  • 如果有多个收件人,请使用:merge_vars

尝试构建message然后puts message.to_json并将其放入https://mandrillapp.com/api/docs/messages.JSON.html#method=send-template的调试器中(点击“尝试”按钮。)看看是否能为您提供任何线索。

您也可以尝试使用“USERNAME”代替“username”作为变量名称。文档说合并变量不区分大小写,但值得删除一个可能的不匹配。