тема письма не меняется
вызовите sgMail.send (см. ниже)
const seeBellow = {
"from": "[email protected]",
"templateId": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb",
"dynamicTemplateData": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
},
"personalizations": [
{
"to": "[email protected]",
"subject": "Somebody has sent you a Gift Card"
}
],
"isMultiple": false,
"substitutionWrappers": [
"{{",
"}}"
]
}
что приводит к следующему сообщению
{
"method": "POST",
"url": "/v3/mail/send",
"body": {
"from": {
"email": "[email protected]"
},
"personalizations": [
{
"to": [
{
"email": "[email protected]"
}
],
"subject": "Somebody has sent you a Gift Card",
"dynamic_template_data": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
}
}
],
"template_id": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb"
}
}
Я также пробовал отправить 2 письма через массив сообщений вместо использования персонализации, но это тоже не работает.
Наконец, я также попытался разместить тему рядом с полем from, все еще не сработало
"@sendgrid/mail": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-6.3.1.tgz",
"integrity": "sha512-5zIeAV9iU+0hQkrOQ/D4RB2MfpK+lNbOortIfQdCh95aMDF/TRc9WB8FGNhmQrx9YMuJTms5eiBklF0Fi/dbVg==",
"requires": {
"@sendgrid/client": "6.3.0",
"@sendgrid/helpers": "6.3.0"
}
},
Обходной путь, который я использую, - это добавить тему в веб-интерфейс SendGrid, например {{subject}}, а затем передать переменную темы в dynamic_template_data
. Кажется, что переменные шаблона работают в предметах, поэтому вы можете просто программно передать весь предмет таким образом.
Привет @falconmick ,
Обходной путь
@ wbw20 ,
Спасибо за помощь! Я отредактировал ваше изображение, потому что оно не помогло решить проблему. Не уверен, каковы были ваши намерения.
С наилучшими пожеланиями,
Элмер
FWIW, я вижу подобное поведение с библиотекой Ruby.
Установка темы в объекте электронной почты не означает отмены чего-либо, определенного в шаблоне в веб-инструментах. Придется делать из него руль и добавлять в каждую индивидуальность.
Я тоже сталкиваюсь с этой проблемой. Я изо всех сил пытаюсь точно указать, почему он терпит неудачу.
Обходной путь кажется жизнеспособным, но к сожалению, он идет вразрез с настройками, которые у нас есть для всех других сообщений электронной почты SendGrid.
Должно получиться так:
"dynamic_template_data": {
"subject": "ваша тема",
},
перейти на https://sendgrid.com/dynamic_templates
и добавьте {{{subject}}} в НАСТРОЙКИ ШАБЛОНА.
У меня работает: +1:
Решение @atarabbi должно быть тем, что вам нужно. Продолжайте комментировать эту ветку, если у вас все еще возникают проблемы. Спасибо!
Решение @atarabbi должно быть тем, что вам нужно. Продолжайте комментировать эту ветку, если у вас все еще возникают проблемы. Спасибо!
Но разве это не приводит к тому, что все в конечном итоге перестает работать в соответствии с тем, как API библиотеки документирован для использования нами? Установка темы так, как позволяют вещи, все равно кажется неуместной, нет?
Да, метод, предлагаемый документами для изменения темы, похоже, не работает. Я не знаю, проблема ли это только для dynamic_template_data, но я тоже испытываю это.
Я попробую использовать динамический шаблон для строки темы, но документация на удивление противоречива.
Из того, что я вижу в документации здесь , задокументировано обновление темы шаблона с помощью переменной handlebars (конечно, это могло бы быть более обширным объяснением). @baugarten Просто чтобы убедиться, вы говорите, что это вам не подходит? Можете ли вы указать, где мы указываем вам неправильное направление?
Я вижу, что мы не документируем dynamic_template_data в клиентском пакете .
Кроме того, вы используете последнюю версию библиотеки v6.3.1?
Определенно хочу это исправить и извиняюсь за недоразумение!
FWIW Я также вижу эту проблему в библиотеке Golang , я не могу переопределить тему шаблона из вызова API. Если я не могу найти подходящего обходного пути, я тоже сделаю проблему.
Ух, в документации прямо говорится, что базовая тема будет перезаписана субъектом персонализации, что совсем не то же самое, что возможность шаблонизировать тему.
РЕДАКТИРОВАТЬ: особенно, когда ваши собственные библиотеки не работают. Они добавляют тему в персонализацию, где ее нельзя использовать в шаблоне. Если вы ожидаете, что это будет задокументированное поведение, то библиотеки должны добавить его к подобъекту dynamic_template_data.
Также столкнулся с этим, тема, похоже, не перезаписана, но можно обойтись.
Оставить тему в «dynamic_template_data» и сослаться на нее в шаблоне с помощью {{{subject}}} действительно работает. Также я заметил, что custom_args больше не существует. Он объединяется вместе с заменами в dynamic_template_data. К сожалению, в документации об этом не говорится. Если вы хотите, например, передать параметр языка, сделайте это также в своем 'dynamic_template_data'.
Поле «dynamic_template_data» работает, но кажется недокументированным: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
Это все еще проблема. Почему это было закрыто?
Обходной путь не работает надежно. Если я отправлю ~ 30 писем в цикле, используя одну и ту же тему, я получу некоторые с темой, которую я отправил, а некоторые с (без темы).
Есть ли в настоящее время способ надежно отправлять настраиваемые темы через API?
@ deepai-org. Лучше всего использовать последние версии документации здесь: https://sendgrid.com/docs/API_Reference/api_v3.html
@vladkosarev Вы говорите, что используете один и тот же динамический шаблон с шаблоном темы с помощью ручек (см. https://github.com/sendgrid/sendgrid-nodejs/issues/713#issuecomment-443206995), а полезная нагрузка вашего запроса содержит правильную данные динамического шаблона для предмета, и он ненадежно использует предмет? Если это так, лучше всего обратиться в службу поддержки, поскольку это не то, что может / должно быть решено библиотекой на стороне клиента.
@ childish-sambino Через некоторое время тема всех писем стала правильной. Кажется, что какое-то время происходит что-то асинхронное, и некоторые электронные письма получат старый шаблон электронной почты, а некоторые новые.
Правильная ли это https://sendgrid.com/docs/API_Reference/api_v3.html документация? Я почти уверен, что отправка темы, как описано в этом документе, не сработает. Единственный способ, который пока работал, - это обходной путь, описанный в этой заявке.
@vladkosarev Это правильные документы. Если вы используете динамические шаблоны, тема должна быть шаблонизирована и передана как данные динамического шаблона, чтобы изменить ее для каждого электронного письма, как описано в этом выпуске. Если вы не используете шаблоны, будет использоваться тема, указанная в полезных данных почтового отправления.
Что касается того, почему была необходима некоторая синхронизация, чтобы тема была правильной для всех писем, лучше всего обратиться в службу поддержки.
@ childish-sambino Не могли бы вы указать мне, где в документации объясняется, как использовать тему в динамическом шаблоне? Я до сих пор не могу найти это в новой ссылке. Спасибо!
если я правильно помню @vladkosarev , вы хотите установить значение руля в самом шаблоне для темы - это делается с помощью графического интерфейса шаблона. Затем просто укажите это значение в своем коде.
@aroach спасибо, но мне интересно увидеть это в документе, а не в комментарии к github. Кстати, {{}} у меня не сработало, когда я попробовал, работали только тройные скобки {{{}}} (может быть та же проблема с асинхронностью, что и раньше).
@vladkosarev Здесь, кажется, упоминается: https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/
Этот шаблон Handlebars можно использовать в строках текста, html и темы вашего шаблона.
@aroach спасибо. Я просто провел больше тестов, и предмету требуется некоторое время, чтобы на самом деле «применить» к шаблону, поэтому похоже, что он не работает, если вы тестируете (редактировать шаблон / отправлять). Если вы подождете 10 минут, он действительно будет применен и работает по назначению. Я мог бы связаться с SG, чтобы документально подтвердил, что обновления шаблонов не происходят в реальном времени (по крайней мере, для темы) и что вам нужно немного подождать, чтобы провести тест. Спасибо.
@Whatthefoxsays должен иметь возможность преследовать это и / или вносить соответствующие изменения. 👋
@aroach , наверное, я должен упомянуть, что у нас есть два IP-адреса для отправки электронной почты. Я не знаю, как работает SG изнутри, но, возможно, именно поэтому возникла проблема (требуется время для распространения на второй узел?).
Самый полезный комментарий
Должно получиться так:
"dynamic_template_data": {
"subject": "ваша тема",
},
перейти на https://sendgrid.com/dynamic_templates
и добавьте {{{subject}}} в НАСТРОЙКИ ШАБЛОНА.
У меня работает: +1: