Ошибка слияния шаблона Mandrill

Я использую mandrill для отправки электронных писем из своего API (в ruby ​​с гемом mandrill-api), например, для подтверждения регистрации.

У меня есть тег слияния в шаблоне, чтобы поставить имя пользователя:

Здравствуйте *|USERNAME|*,

Большое спасибо за установку приложения! ... ...

Мой код 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

К сожалению, когда я получаю электронное письмо, все в порядке (to, name, from, ...), но тег объединения не заменяется в теле, и у меня все еще есть *|USERNAME|* отображается.

Что мне здесь не хватает?

1 ответ

Решение

Вам нужно только установить USERNAME один раз, либо в :global_merge_vars или же :merge_vars,

  • Если вы отправляете сообщения только одному получателю, не имеет значения, что вы делаете.
  • Если есть несколько получателей, используйте :merge_vars,

Попробуйте построить message а потом puts message.to_json и поместите его в отладчик по адресу https://mandrillapp.com/api/docs/messages.JSON.html (нажмите кнопку "Попробовать"). Проверьте, дает ли это какие-либо подсказки.

Вы также можете попробовать использовать "USERNAME" вместо "username" в качестве имени переменной. В документах говорится, что переменные слияния не чувствительны к регистру, но стоит устранить еще одно возможное несоответствие.

Другие вопросы по тегам