Sendgrid-nodejs: Подмена не работает

Созданный на 7 сент. 2017  ·  17Комментарии  ·  Источник: sendgrid/sendgrid-nodejs

Резюме проблемы

Я перешел с sendgrid 2.0.0 на @sendgrid/mail 6.1.2 , замены больше не работают

Действия по воспроизведению

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutions: {
      "%DISPLAY_NAME%": 'Test'
    }
  }
  return sendgrid.send(msg)
}

Технические подробности:

  • sendgrid-nodejs Версия: master (последняя фиксация: [номер фиксации])
  • Node.js Версия: 8.4.0
help wanted question

Самый полезный комментарий

@sydneyhenrard ,

За помощь в решении этой проблемы мы хотели бы отправить вам сувениры в знак нашей благодарности.

Спасибо за поддержку SendGrid!

С наилучшими пожеланиями,

Элмер

Все 17 Комментарий

Привет @sydneyhenrard!

Вот полный пример.

Похоже, вам нужно установить substitutionWrappers . В вашем случае это будет % . Затем в объекте substitutions вы должны оставить символы % .

С наилучшими пожеланиями,

Элмер

Есть ли соглашение о переменной?

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME% - %displayname%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutionWrappers: ['%', '%'],
    substitutions: {
      DISPLAY_NAME: 'Test',
      displayname: 'Test'
    }
  }
  return sendgrid.send(msg)
}

Полученное письмо:

Hi %DISPLAY_NAME% – Test

Привет @sydneyhenrard!

Мне удалось воспроизвести эту проблему. Я добавил это в наш список невыполненных работ, чтобы исправить. Похоже, что при n подстановке подстановка 0 не устанавливается должным образом.

С наилучшими пожеланиями,

Элмер

@thinkingserious это на вашей

Это проблема с SDK. Я не совсем уверен, в чем проблема. Я планирую изучить полезную нагрузку, чтобы помочь в устранении неполадок.

Если я использую переменную camelCase, у меня нет проблем с заменами даже для замены 0

Спасибо @sydneyhenrard ,

Это должно помочь быстрее найти первопричину :)

Думаю, я знаю, в чем проблема, позвольте мне разобраться.

442 должен исправить это 👍

Слит как v6.1.3, спасибо @adamreisnz!

@sydneyhenrard ,

За помощь в решении этой проблемы мы хотели бы отправить вам сувениры в знак нашей благодарности.

Спасибо за поддержку SendGrid!

С наилучшими пожеланиями,

Элмер

была такая же проблема в 01/2018. изменил наши переменные подстановки с% companyname% на% company_name%, потому что однословные переменные не работали. исправлено немедленно.

Привет @greglbyv!

Какую версию SDK вы используете? Спасибо!

С наилучшими пожеланиями,

Элмер

Должны ли подстановки работать при использовании встроенного шаблона? Я могу заставить их работать, только когда создаю шаблон вручную, те, которые созданы с помощью инструмента дизайна, никогда не работают.

@airstofather ,

Чтобы помочь вам, мне понадобятся дополнительные подробности. 1) Какой шаблон вы имеете в виду? 2) Не могли бы вы предоставить образец кода? И HTML-шаблон, и код Node.js. Спасибо!

Кроме того, может быть лучше открыть отдельный выпуск. Спасибо!

С наилучшими пожеланиями,

Элмер

@thinkingserious

Пожалуйста, проигнорируйте мой предыдущий комментарий. После вашего ответа я вернулся, чтобы взглянуть на него свежим взглядом, и это был лишний пробел в интерполированной переменной, который вызывал проблему, которую я не заметил в первый раз.

Все работает как заявлено. Спасибо.

@thinkingserious Я перепробовал все, верблюжий футляр, подчеркивание. Переменная по-прежнему не заполняется, когда я провожу тестирование через пользовательский интерфейс sendgrid и передаю переменную, она работает нормально. Он просто не работал бы через облачные функции firebase. Вот мой код

Я использую "@ sendgrid / mail": "^ 6.3.1"

const msgbody = {
          to: userData.email,
          from: '[email protected]',
          subject: 'Registration Complete',
          templateId: 'd-dffc1e7c8a4a4ed5a4384eded1701f65',
          substitutionWrappers: ['{{', '}}'],
          substitutions: {
            first_name: userData.firstName
          }
        }
Была ли эта страница полезной?
0 / 5 - 0 рейтинги