山魈模板合并失败

Mandrill template merge fail

我正在使用 mandrill 从我的 API 发送电子邮件(在 ruby 中使用 mandrill-api gem),例如注册确认电子邮件。

我在模板中有一个合并标签来放置用户名:

Hello *|USERNAME|*,

Thank you very much for installing the app! ... ...

我的 ruby 代码看起来像这样:

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

不幸的是,当我收到电子邮件时,一切正常(收件人、姓名、发件人...),但正文中的合并标签没有被替换,我仍然显示 *|USERNAME|*

我在这里错过了什么?

您应该只需要在 :global_merge_vars:merge_vars 中设置一次 USERNAME

  • 如果您只发送给一个收件人,那么您发送给哪个收件人并不重要。
  • 如果有多个收件人,使用:merge_vars

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

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