Ответ 1
Поскольку для каждой замены требуется два поля: его имя и его содержимое. Итак, ваше слияние должно стать чем-то вроде:
"vars": [
{
"name": "name",
"content" : "merge2"
}
]
Я использую API Mandrill и имею простой шаблон:
<html>
<body>
<p>Hello *|name|*
</p>
</body>
</html>
И я использую API send-template.json отсюда: https://mandrillapp.com/api/docs/messages.JSON.html#method=send-template
И когда я вставляю свою полезную нагрузку, тогда имя "имя" все еще не заполнено, любая идея почему?
{
"key": "secret",
"template_name": "mandrill-sunday",
"template_content": [
{
"name": "example name"
}
],
"message": {
"html": "<p>Example HTML content</p>",
"text": "Example text content",
"subject": "example subject",
"from_email": "[email protected]",
"from_name": "Example Name",
"to": [
{
"email": "[email protected]",
"name": "Recipient Name"
}
],
"headers": {
"Reply-To": "[email protected]"
},
"important": false,
"track_opens": null,
"track_clicks": null,
"auto_text": null,
"auto_html": null,
"inline_css": null,
"url_strip_qs": null,
"preserve_recipients": null,
"bcc_address": "[email protected]",
"tracking_domain": null,
"signing_domain": null,
"merge": true,
"global_merge_vars": [
{
"name": "merge1"
}
],
"merge_vars": [
{
"rcpt": "[email protected]",
"vars": [
{
"name": "merge2"
}
]
}
],
"tags": [
"password-resets"
],
"google_analytics_domains": [
"mydomain.com"
],
"google_analytics_campaign": "mandrill-sunday",
"metadata": {
"website": "www.mydomain.com"
},
"recipient_metadata": [
{
"rcpt": "[email protected]",
"values": {
"user_id": 123456
}
}
]
},
"async": false
}
Но единственное, что я верну в свой адрес электронной почты:
Hello *|name|*
Поскольку для каждой замены требуется два поля: его имя и его содержимое. Итак, ваше слияние должно стать чем-то вроде:
"vars": [
{
"name": "name",
"content" : "merge2"
}
]
Необходимо использовать 'global_merge_vars'
'global_merge_vars': [{'content': 'merge1 content', 'name': 'name'}]
Я просто попробовал принять ответ с заголовком SMTP, и это не сработало. (Я пишу в Ruby (on Rails) здесь)
headers['X-MC-MergeVars'] = [
{name: 'name', content: 'pieter'}
].to_json
Хотя самый простой способ работает. Может быть, они что-то изменили или заголовки SMTP работают по-другому?.. Это работает:
headers['X-MC-MergeVars'] = {
name: 'pieter'
}.to_json
Там могут быть две вещи, которые могут вас тронуть.
1) (как упоминали другие) Каждый объект переменной слияния имеет две пары ключ-значение, имя и содержимое:
'global_merge_vars': [
{
'name': 'fullName',
'content': 'foo bar',
},
{
'name': 'email',
'content': '[email protected]',
}
],
2) Убедитесь, что язык слияния задан как для mailchimp, так и для ручек для mandrill.
'merge_language': 'mailchimp',
Источник: https://mandrillapp.com/api/docs/messages.python.html#method=send-template