Sendgrid-nodejs: Substitution funktioniert nicht

Erstellt am 7. Sept. 2017  ·  17Kommentare  ·  Quelle: sendgrid/sendgrid-nodejs

Problemzusammenfassung

Ich bin von sendgrid 2.0.0 auf @sendgrid/mail 6.1.2 migriert, die Ersetzungen funktionieren nicht mehr

Schritte zum Reproduzieren

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

Technische Details:

  • sendgrid-nodejs Version: master (letztes Commit: [Commit-Nummer])
  • Node.js Version: 8.4.0
help wanted question

Hilfreichster Kommentar

@sydneyhenrard ,

Um uns bei der Lösung dieses Problems zu helfen, möchten wir Ihnen als Zeichen unserer Dankbarkeit

Vielen Dank für die Unterstützung von SendGrid!

Mit besten Empfehlungen,

Elmer

Alle 17 Kommentare

Hallo @sydneyhenrard ,

Hier ist ein vollständiges Beispiel.

Es scheint, dass Sie substitutionWrappers festlegen müssen. In Ihrem Fall wäre das % . Dann würden Sie im substitutions -Objekt die % -Zeichen weglassen.

Mit besten Empfehlungen,

Elmer

Gibt es eine Konvention über Variablen?

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

Die erhaltene E-Mail:

Hi %DISPLAY_NAME% – Test

Hallo @sydneyhenrard ,

Ich konnte dieses Problem reproduzieren. Ich habe dies zu unserem Rückstand hinzugefügt, um das Problem zu beheben. Es sieht so aus, als ob bei n Substitution die Substitution 0 nicht richtig gesetzt wird.

Mit besten Empfehlungen,

Elmer

@thinkingserious ist das auf Ihrer Seite oder ein Problem mit dem Node SDK?

Es ist ein Problem mit dem SDK. Ich bin mir nicht ganz sicher, worum es genau geht. Ich habe vor, die Nutzlast zu untersuchen, um bei der Fehlerbehebung zu helfen.

Wenn ich die Variable camelCase verwende, habe ich auch bei Substitution 0 kein Problem mit den Substitutionen

Danke @sydneyhenrard ,

Das sollte helfen, schneller zur Ursache zu gelangen :)

Ich glaube, ich weiß vielleicht, wo das Problem liegt. Lassen Sie mich das untersuchen.

442 sollte dies beheben 👍

Zusammengeführt als v6.1.3, danke @adamreisnz!

@sydneyhenrard ,

Um uns bei der Lösung dieses Problems zu helfen, möchten wir Ihnen als Zeichen unserer Dankbarkeit

Vielen Dank für die Unterstützung von SendGrid!

Mit besten Empfehlungen,

Elmer

hatte das gleiche Problem in 01/2018. Unsere Substitutionsvariablen wurden von% Firmenname% in% Firmenname% geändert, da Einzelwortvariablen nicht funktionierten. sofort behoben.

Hallo @greglbyv ,

Welche Version des SDK verwenden Sie? Vielen Dank!

Mit besten Empfehlungen,

Elmer

Sollen Substitutionen funktionieren, wenn Sie eine Entwurfsvorlage verwenden? Ich kann sie nur zum Laufen bringen, wenn ich die Vorlage von Hand erstelle. Diejenigen, die mit dem Design-Tool erstellt wurden, funktionieren nie.

@airstofather ,

Um Ihnen zu helfen, brauche ich weitere Details. 1) Auf welche Vorlage beziehen Sie sich? 2) Können Sie einen Beispielcode angeben? Sowohl der Vorlagen-HTML- als auch der Node.js-Code. Dankeschön!

Es ist möglicherweise auch am besten, ein separates Problem zu eröffnen. Vielen Dank!

Mit besten Empfehlungen,

Elmer

@thinkingserious

Bitte ignorieren Sie meinen vorherigen Kommentar. Nach Ihrer Antwort ging ich zurück, um es mit neuen Augen zu betrachten, und es war ein zusätzlicher Platz in der interpolierten Variablen, der das Problem verursachte, das ich beim ersten Mal nicht bemerkte.

Alles funktioniert wie angekündigt. Dankeschön.

@thinkingserious Ich habe alles versucht, Kamelkoffer, Unterstrich. Die Variable würde immer noch nicht gefüllt, wenn ich den Test über die sendgrid-Benutzeroberfläche durchführe und die Variable übergebe, funktioniert es einwandfrei. Es würde einfach nicht durch Firebase-Cloud-Funktionen funktionieren. Hier ist mein Code

Ich verwende "@ 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
          }
        }
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen