Sendgrid-nodejs: La substitution ne fonctionne pas

Créé le 7 sept. 2017  ·  17Commentaires  ·  Source: sendgrid/sendgrid-nodejs

Résumé de la question

J'ai migré de sendgrid 2.0.0 vers @sendgrid/mail 6.1.2 , les substitutions ne fonctionnent plus

Étapes à suivre pour reproduire

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)
}

Détails techniques:

  • sendgrid-nodejs Version: master (dernier commit: [numéro de commit])
  • Version de Node.js: 8.4.0
help wanted question

Commentaire le plus utile

@sydneyhenrard ,

Pour nous aider à résoudre ce problème, nous aimerions vous envoyer un cadeau en guise de remerciement.

Merci de soutenir SendGrid!

Meilleures salutations,

Elmer

Tous les 17 commentaires

Bonjour @sydneyhenrard ,

Voici un exemple complet.

Il semble que vous deviez définir le substitutionWrappers . Dans votre cas, ce serait % . Ensuite, dans l'objet substitutions , vous laisseriez les caractères % .

Meilleures salutations,

Elmer

Existe-t-il une convention sur la variable?

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)
}

L'e-mail reçu:

Hi %DISPLAY_NAME% – Test

Bonjour @sydneyhenrard ,

J'ai pu reproduire ce problème. J'ai ajouté ceci à notre arriéré pour un correctif. Cela ressemble à une substitution de n, la substitution 0 n'est pas définie correctement.

Meilleures salutations,

Elmer

@thinkingserious est-ce de votre côté ou un problème avec le SDK Node?

C'est un problème avec le SDK. Cependant, je ne sais pas exactement quel est le problème. Je prévois d'examiner la charge utile pour aider à dépanner.

Si j'utilise la variable camelCase, je n'ai aucun problème avec les substitutions même pour la substitution 0

Merci @sydneyhenrard ,

Cela devrait aider à trouver la cause première plus rapidement :)

Je pense que je peux savoir quel est le problème, laissez-moi enquêter.

442 devrait résoudre ce problème 👍

Fusionné en v6.1.3, merci @adamreisnz!

@sydneyhenrard ,

Pour nous aider à résoudre ce problème, nous aimerions vous envoyer un cadeau en guise de remerciement.

Merci de soutenir SendGrid!

Meilleures salutations,

Elmer

eu le même problème en 01/2018. changé nos variables de substitution de% companyname% à% company_name% car les variables à un seul mot ne fonctionnaient pas. réparé immédiatement.

Salut @greglbyv ,

Quelle version du SDK utilisez-vous? Merci!

Meilleures salutations,

Elmer

Les substitutions sont-elles censées fonctionner lors de l'utilisation d'un modèle de conception intégrée? Je ne peux les faire fonctionner que lorsque je construis le modèle à la main, ceux construits avec l'outil de conception ne fonctionnent jamais.

@airstofather ,

Pour vous aider, j'aurai besoin de plus de détails. 1) De quel modèle parlez-vous? 2) Pouvez-vous fournir un exemple de code? Le code HTML du modèle et le code Node.js. Merci!

En outre, il peut être préférable d'ouvrir un problème distinct. Merci!

Meilleures salutations,

Elmer

@thinkingserious

Veuillez ignorer mon commentaire précédent. Après votre réponse, je suis retourné le regarder avec des yeux neufs et c'était un espace supplémentaire dans la variable interpolée qui causait le problème que je n'ai pas attrapé la première fois.

Tout fonctionne comme annoncé. Merci.

@thinkingserious J'ai tout essayé, camelcase, soulignement. La variable ne se remplirait toujours pas, lorsque je fais les tests via l'interface utilisateur sendgrid et que je transmets la variable, cela fonctionne bien. Cela ne fonctionnerait tout simplement pas avec les fonctions cloud de Firebase. Voici mon code

J'utilise "@ 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
          }
        }
Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

agostonbonomi picture agostonbonomi  ·  3Commentaires

TobiahRex picture TobiahRex  ·  3Commentaires

thinkingserious picture thinkingserious  ·  4Commentaires

prasoonjalan picture prasoonjalan  ·  3Commentaires

polkhovsky picture polkhovsky  ·  3Commentaires