Sendgrid-nodejs: Betreff ändert sich nicht in Vorlage mail.send ()

Erstellt am 1. Aug. 2018  ·  26Kommentare  ·  Quelle: sendgrid/sendgrid-nodejs

Problemzusammenfassung

Betreff ändert sich nicht in E-Mail

Schritte zum Reproduzieren

Rufen Sie sgMail.send auf (siehe unten).

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": [
    "{{",
    "}}"
  ]
}

was zu folgendem Beitrag führt

{
  "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"
  }
}

Ich habe auch versucht, 2 E-Mails über eine Reihe von Nachrichten zu senden, anstatt Personalisierungen zu verwenden, aber dies funktioniert auch nicht.

Schließlich habe ich auch versucht, das Thema neben das Feld von zu stellen, was immer noch nicht funktioniert hat

Technische Details:

  • sendgrid version in lockfile:
    "@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"
      }
    },
  • Node.js Version: 8.11.1
unknown or a hacktoberfest help wanted bug

Hilfreichster Kommentar

Es sollte so sein:
"dynamic_template_data": {
"Betreff": "Ihr Betreff",
},

Gehen Sie zu https://sendgrid.com/dynamic_templates
und fügen Sie {{{subject}}} bei TEMPLATE SETTINGS hinzu.

Es funktioniert bei mir: +1:

Alle 26 Kommentare

Die Problemumgehung, die ich verwende, besteht darin, einen Betreff in der SendGrid-Weboberfläche wie {{subject}} hinzuzufügen und dann eine Betreffvariable an dynamic_template_data . Es scheint, dass Vorlagenvariablen in Fächern funktionieren, sodass Sie das gesamte Thema auf diese Weise programmgesteuert übergeben können.

Hallo @falconmick ,

@ wbw20 Workaround funktioniert, bitte versuchen Sie das, während wir die Grundursache untersuchen.

@ wbw20 ,

Vielen Dank für Ihre Hilfe! Ich habe Ihr Bild bearbeitet, weil es nicht zur Lösung hinzugefügt wurde. Ich bin mir nicht sicher, was deine Absicht war.

Mit besten Empfehlungen,

Elmer

FWIW, ich sehe ein ähnliches Verhalten mit der Ruby-Bibliothek.

Durch das Festlegen des Betreffs für das E-Mail-Objekt wird nichts überschrieben, was in der Vorlage im Web-Tool definiert ist. Müssen es zu einem Lenker machen und zu jeder Personalisierung hinzufügen.

Auch ich stoße auf dieses Problem. Ich kämpfe darum, genau zu bestimmen, warum es fehlschlägt.

Die Problemumgehung scheint praktikabel zu sein, ist jedoch unglücklich, da sie gegen die Einrichtung verstößt, die wir für alle anderen SendGrid-E-Mails haben.

Es sollte so sein:
"dynamic_template_data": {
"Betreff": "Ihr Betreff",
},

Gehen Sie zu https://sendgrid.com/dynamic_templates
und fügen Sie {{{subject}}} bei TEMPLATE SETTINGS hinzu.

Es funktioniert bei mir: +1:

Die Lösung von @atarabbi sollte genau das sein, was Sie brauchen. Bitte kommentieren Sie diesen Thread weiterhin, wenn Sie weiterhin auf Probleme stoßen. Vielen Dank!

Die Lösung von @atarabbi sollte genau das sein, was Sie brauchen. Bitte kommentieren Sie diesen Thread weiterhin, wenn Sie weiterhin auf Probleme stoßen. Vielen Dank!

Aber funktioniert das letztendlich nicht immer noch nicht so, wie die Bibliotheks-API dokumentiert ist, damit wir sie nutzen können? Das Thema so einzustellen, wie es die Dinge erlauben, scheint immer noch kaputt zu sein, nein?

Ja, die in den Dokumenten vorgeschlagene Methode zum Wechseln des Themas scheint nicht zu funktionieren. Ich weiß nicht, ob dies nur ein Problem für dynamic_template_data ist, aber ich habe auch Probleme damit.

Ich werde versuchen, eine dynamische Vorlage für die Betreffzeile zu verwenden, aber die Dokumentation ist überraschend inkonsistent

Nach dem, was ich hier in den Dokumenten sehe, ist dokumentiert, dass der Betreff der Vorlage mit der Lenkervariablen aktualisiert wird (zugegeben, dies könnte eine ausführlichere Erklärung sein). @baugarten Nur um sicherzugehen, sagen Sie, dass das bei Ihnen nicht funktioniert? Können Sie darauf hinweisen, wo wir Sie in die falsche Richtung weisen?

Ich sehe, dass wir dynamic_template_data nicht im Client-Paket dokumentieren .

Verwenden Sie auch die neueste Bibliotheksversion v6.3.1?

Ich möchte das auf jeden Fall beheben und mich für die Verwirrung entschuldigen!

FWIW Ich sehe dieses Problem auch in der Golang-Bibliothek . Ich kann den Vorlagen-Betreff aus dem API-Aufruf nicht überschreiben. Wenn ich keine geeignete Problemumgehung finde, mache ich dort auch ein Problem.

Ugh, die Dokumente sagen ausdrücklich, dass das Basisthema von einem Personalisierungssubjekt überschrieben wird, was keineswegs mit der Vorlage des Themas identisch ist.

EDIT: Besonders wenn deine eigenen Bibliotheken nicht funktionieren. Sie fügen ein Thema in eine Personalisierung ein, wo es nicht zur Vorlage verwendet werden kann. Wenn Sie erwarten, dass dies das dokumentierte Verhalten ist, müssen die Bibliotheken es dem Unterobjekt dynamic_template_data hinzufügen.

Auch darauf gestoßen, Thema scheint nicht überschrieben zu sein, aber Workaround ist brauchbar.

Das Thema in den 'dynamic_template_data' zu belassen und mit {{{subject}}} in der Vorlage darauf zu verweisen, scheint tatsächlich zu funktionieren. Mir ist auch aufgefallen, dass custom_args nicht mehr existiert. Es wird zusammen mit Ersetzungen in 'dynamic_template_data' zusammengeführt. Leider sagen die Dokumente dies nicht. Wenn Sie beispielsweise einen Sprachparameter übergeben möchten, tun Sie dies auch in Ihren 'dynamic_template_data'.

Das Feld "dynamic_template_data" funktioniert, scheint jedoch nicht dokumentiert zu sein: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html

Dies ist immer noch ein Problem. Warum war das geschlossen?

Die Problemumgehung funktioniert nicht zuverlässig. Wenn ich ~ 30 E-Mails in einer Schleife mit genau demselben Betreff sende, erhalte ich einige mit dem Betreff, den ich gesendet habe, und einige mit (ohne Betreff).

Gibt es derzeit eine Möglichkeit, benutzerdefinierte Betreffs zuverlässig über die API einzusenden?

@ deepai-org Verwenden Sie am besten die neuesten Dokumente hier: https://sendgrid.com/docs/API_Reference/api_v3.html

@vladkosarev Wollen Sie damit sagen, dass Sie dieselbe dynamische Vorlage mit einem mit Lenker versehenen Betreff verwenden (siehe https://github.com/sendgrid/sendgrid-nodejs/issues/713#issuecomment-443206995) und Ihre Anforderungsnutzlast die richtige enthält dynamische Vorlagendaten für das Thema und es verwendet das Thema nicht zuverlässig? Wenn dies der Fall ist, wenden Sie sich am besten an den Support, da dies nicht von einer clientseitigen Bibliothek behoben werden kann / sollte.

@ childish-sambino Nach einer Weile war der Betreff in allen E-Mails tatsächlich korrekt. Es scheint, als ob für eine Weile etwas Asynchrones passiert und einige E-Mails erhalten alte und einige neue E-Mail-Vorlagen.

Ist diese https://sendgrid.com/docs/API_Reference/api_v3.html korrekte Dokumentation? Ich bin mir ziemlich sicher, dass das Senden des Betreffs, wie in diesem Dokument beschrieben, nicht funktioniert. Der einzige Weg, auf dem es bisher funktioniert hat, war die in diesem Ticket beschriebene Problemumgehung.

@vladkosarev Das sind die richtigen Dokumente. Wenn Sie dynamische Vorlagen verwenden, muss der Betreff als dynamische Vorlagendaten mit Vorlagen versehen und übergeben werden, damit er per E-Mail geändert werden kann, wie in dieser Ausgabe beschrieben. Wenn Sie keine Vorlagen verwenden, wird der in der Mail-Send-Payload angegebene Betreff verwendet.

Wenden Sie sich am besten an den Support, um zu erfahren, warum eine Synchronisierung erforderlich war, damit der Betreff für alle E-Mails korrekt ist.

@ childish-sambino Kannst du mir bitte zeigen, wo in den Dokumenten erklärt wird, wie man einen Betreff in einer dynamischen Vorlage verwendet? Ich kann das immer noch nirgendwo in diesem neuen Link finden. Vielen Dank!

Wenn ich mich richtig an @vladkosarev erinnere , möchten Sie den

image

@aroach danke, aber ich bin daran interessiert, das im Dokument zu sehen, nicht in einem Kommentar zu Github. Übrigens funktionierte {{}} bei mir nicht, als ich es versuchte, nur dreifache Klammern {{{}}} funktionierten (könnte dasselbe asynchrone Problem sein wie zuvor).

@vladkosarev Es scheint hier erwähnt zu werden: https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/

Diese Vorlagen für Lenker können in den Text-, HTML- und Betreffzeilen Ihrer Vorlage verwendet werden.

@aroach danke. Ich habe gerade mehr Tests durchgeführt, und es dauert eine Weile, bis der Betreff tatsächlich auf eine Vorlage angewendet wird. Es sieht also so aus, als würde es beim Testen nicht funktionieren (Vorlage bearbeiten / senden). Wenn Sie 10 Minuten warten, wird es tatsächlich angewendet und funktioniert wie beabsichtigt. Ich kann mich an SG wenden, um zu dokumentieren, dass Vorlagenaktualisierungen nicht in Echtzeit erfolgen (zumindest für den Betreff) und dass Sie etwas warten müssen, um einen Test durchzuführen. Dankeschön.

@Whatthefoxsays sollte in der Lage sein, dies zu verfolgen und / oder die entsprechenden Änderungen vorzunehmen. 👋

@aroach Eine Sache, die ich wahrscheinlich erwähnen sollte, ist, dass wir zwei IPs zum Versenden von E-Mails haben. Ich kenne die innere Funktionsweise von SG nicht, aber das könnte der Grund sein, warum es ein Problem gibt (braucht Zeit, um sich auf den zweiten Knoten zu verbreiten?).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen