Mandrill 模板合并失败

Posted

技术标签:

【中文标题】Mandrill 模板合并失败【英文标题】:Mandrill template merge fail 【发布时间】:2016-02-28 10:51:44 【问题描述】:

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

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

你好*|用户名|*,

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

我的 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|*

我在这里错过了什么?

【问题讨论】:

您使用的是哪种宝石? mandrill API 有大量的 ruby​​ 包装器。 mandrillapp.com/docs/integrations.html 这是 mandrill-api,我刚刚用这些信息更新了消息,谢谢。 【参考方案1】:

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

如果您只向一位收件人发送邮件,则发送给哪个收件人都没有关系。 如果有多个收件人,请使用:merge_vars

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

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

【讨论】:

是的,那是因为我已经尝试了所有这些可能性。我会尝试调试器,我不知道。谢谢,我会及时通知你 太棒了!很高兴听见!真正的问题是什么?

以上是关于Mandrill 模板合并失败的主要内容,如果未能解决你的问题,请参考以下文章

Mandrill 不替换 html 模板中的合并标签内容

如何获取 Mandrill/Mailchimp 模板以在合并标签中保留换行符

如何在 Mandrill 中为本机 Mailchimp 的合并标签设置值?

mandrill 和嵌套的合并变量

在 Mandrill 车把合并变量中使用 HTML

抄送收件人的 Mandrill 合并变量不起作用