Ошибка слияния шаблона 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" в качестве имени переменной. В документах говорится, что переменные слияния не чувствительны к регистру, но стоит устранить еще одно возможное несоответствие.