Sendgrid-nodejs: Substitutionen funktionieren nicht

Erstellt am 10. Apr. 2018  ·  43Kommentare  ·  Quelle: sendgrid/sendgrid-nodejs

Problemzusammenfassung

Befolgen Sie das Beispiel für die Verwendung von Ersetzungen in Transaktions-E-Mails , ohne Änderungen vorzunehmen. Die Ersetzungs-Tags werden entfernt, aber der Text wird nicht eingefügt. Hier ist ein Screenshot der E-Mail, die ich erhalte:

image

Schritte zum Reproduzieren

  1. Klonen Sie https://github.com/panayi/test-sg/
  2. Kopieren Sie den Vorlagenkörper aus dem Beispiel und erstellen Sie eine Transaktionsvorlage auf der SendGrid-Benutzeroberfläche.
  3. Bearbeiten Sie test.js , um Ihren API-Schlüssel, Ihre E-Mail-Adresse und templateId einzufügen, die Sie oben erstellt haben.
  4. Führen Sie node test.js .

Technische Details:

unknown or a help wanted question

Hilfreichster Kommentar

Hallo, nachdem ich den Kommentar von hatte , habe ich mit einer Legacy-Vorlage getestet und es hat funktioniert. Danke @himanshupnt .

Später fand ich die Sendgrid-Dokumentation Mail Send with Dynamic Transactional Templates . Ich habe die neue Vorlage (nicht die Legacy-Vorlage) zum Laufen gebracht. Ich habe dieselbe HTML-Vorlage verwendet und mein Code wurde aktualisiert auf:

  const sgMail = require("@sendgrid/mail");
  sgMail.setApiKey(process.env.SENDGRID_API_KEY);
  sgMail.setSubstitutionWrappers("{{", "}}"); // Configure the substitution tag wrappers globally

  const msg = {
    from: "[email protected]",
    templateId: "d-27e7d954368c46519eddc806e5cf8156",
    personalizations: [
      {
        to: [
          {
            email: "[email protected]"
          }
        ],
        dynamic_template_data: {
          name: "Someone",
          city: "Somewhere",
          subject: "Hello new world"
        }
      }
    ]
  };

  sgMail.send(msg).catch(err => console.error(err.message));

Beachten Sie, dass ich "Ersetzungen" durch "dynamic_template_data" ersetzt und "innerhalb" von "Personalisierungen" platziert habe, wie in den Dokumenten gefordert. Und ich habe das Thema auch als eines der "dynamic_template_data" behandelt und es funktioniert. (Geben Sie {{subject}} in das Feld für den Betreff der Vorlage ein.)

Vielen Dank.

Alle 43 Kommentare

Hallo @panayi ,

Einige Dinge zu überprüfen:

  1. Überprüfen Sie, ob die Vorlagen-ID korrekt ist
  2. Stellen Sie sicher, dass die Vorlage in der Benutzeroberfläche als aktiv markiert ist

Können Sie auch mitteilen, wie Ihr HTML aussieht?

Vielen Dank!

Mit besten Empfehlungen,

Elmer

Hallo, @thinkingserious , ich konnte das gleiche Problem wie bei @panayi reproduzieren.
Mein HTML-Code sieht ungefähr so ​​aus

Hallo Vorname (Mitarbeiter: Mitarbeiter-ID)
Etwas HTML-Code

Code

sgMail.setApiKey('apikey');
sgMail.setSubstitutionWrappers('{{', '}}'); // Triied sgMail.setSubstitutionWrappers('-', '-'); as well`

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Hello world',
  text: 'Hello plain world!',
  html: 'Hello HTML world!',
  templateId: 'template-id',
  substitutions: {
    first_name: 'Tejas',
    employee_id: 'emp123',
  },
};
sgMail.send(msg);

Hinweis: Ich habe sogar versucht, substitutionWrappers: ['{{', '}}']
innerhalb von msg aber ohne glück.

Technische Details:

Jede Hilfe / Korrektur wird geschätzt, da ich viel Zeit in dieses Problem investiert habe

Hallo @tjstlekr ,

Ändern Sie in Ihrem HTML-Code bitte first_name in {{first_name}} und employee_id in {{employee_id}} .

Vielen Dank!

Mit besten Empfehlungen,

Elmer

Hallo @thinkingserious ,
Mit HTML-Code meinen Sie den Vorlagencode?
Warum ist es , dass die Substitution Tag würde gut funktionieren , wenn sie innerhalb Anforderungstext angegeben hier , aber nicht bei der Verwendung der vordefinierten Beispiele auf der Seite ?
Vielen Dank!

Ja @tjstlekr , ich meine den Vorlagencode wie in diesem Beispiel beschrieben .

Ich kann Ihre zweite Frage nicht ohne konkrete Beispiele beantworten. (zB Text und Vorlagencode anfordern).

Mit besten Empfehlungen,

Elmer

Traurig! Ich habe keinen Zugriff auf den Vorlagencode. Ich bleibe bei einer anderen Version.
Trotzdem danke @thinkingserious

Hast du es versucht:

substitutions: {
    'first_name': 'Tejas',
    'employee_id': 'emp123',
  },

Ja, @thinkingserious hat das versucht. Ich habe auch die folgenden Möglichkeiten ausprobiert


substitutions: {
    '-first_name-': 'Tejas',
    '-employee_id-': 'emp123',
  },

substitutions: {
    '%first_name%': 'Tejas',
    '%employee_id%': 'emp123',
  },

substitutions: {
    '=first_name=': 'Tejas',
    '=employee_id'=: 'emp123',
  },

@tjstlekr ,

Ich denke, Ihre Lösung besteht darin, jemanden zu finden, der den HTML-Vorlagencode ändern kann, um die Variablen mit einem oder mehreren Ersetzungszeichen zu versehen.

Mit besten Empfehlungen,

Elmer

@thinkingserious ist richtig. Die Vorlagenvariablen MÜSSEN in doppelte Klammern {{name}} gesetzt werden. Andernfalls weiß SendGrid nicht, wo die von Ihnen gesendeten Ersetzungen abgelegt werden sollen.

Die Variablen brauchen wirklich doppelte Klammern? Ich werde es versuchen, aber ein anderer Beitrag derselben Person zeigte die Substitutionen, die mit Bindestrichen und nicht mit doppelten Klammern arbeiten:
screenshot 2018-06-26 14 08 12

Hallo @tetreault ,

Standardmäßig verwenden wir doppelte Klammern. setSubstitutionWrappers können Sie sie wie gezeigt ändern.

Vielen Dank!

Mit besten Empfehlungen,

Elmer

Ich habe das gleiche Problem wie @panayi festgestellt .

Ich folgte dem Beispiel für Transaktionsvorlagen . Ich habe Substitutions-Wrapper gesetzt und in der Vorlage Substitutionen in doppelte Klammern gesetzt. In der E-Mail, die ich erhalten habe, wurden jedoch alle Ersetzungen entfernt, ohne sie durch die von mir angegebenen zu ersetzen.

Ich habe es sowohl mit dem Code-Editor als auch mit dem Design-Editor für die Vorlage versucht.

Technische Details:

Vielen Dank!

Hallo @nrator ,

Wenn die Ersetzungen durch leere Zeichenfolgen ersetzt würden, würde ich überprüfen, ob die Variablen, auf denen Sie iterieren, nicht leer sind. Wenn Sie sicherstellen, dass sie nicht leer sind, können Sie bitte den Code-Snippit zusammen mit dem entsprechenden HTML-Code freigeben, damit ich versuchen kann, ihn zu reproduzieren.

Vielen Dank!

Mit besten Empfehlungen,

Elmer

Hi @thinkingserious

Ich verwende keine Variablen, sondern Zeichenfolgen, damit sie nicht leer sind. Unten sind das Code-Snippet, HTML und das Ergebnis, das ich erhalten habe:

Code

const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
sgMail.setSubstitutionWrappers("{{", "}}"); // Configure the substitution tag wrappers globally

const msg = {
  from: "[email protected]", // my personal email
  to: "[email protected]", // my another personal email
  subject: "Hello world",
  text: "Hello plain world!",
  html: "<p>Hello HTML world!</p>",
  templateId: "d-27e7d954368c46519eddc806e5cf8156",
  substitutions: {
    name: "Some One",
    city: "Denver"
  }
};

  sgMail.send(msg).catch(err => console.error(err.message));

HTML-Vorlage

<html>
<head>
    <title></title>
</head>
<body>
Hello {{name}},
<br /><br/>
I'm glad you are trying out the template feature!
<br /><br/>
<%body%>
<br /><br/>
I hope you are having a great day in {{city}} :)
<br /><br/>
</body>
</html>

E-Mail habe ich bekommen

Hello , 

I'm glad you are trying out the template feature! 

<%body%> 

I hope you are having a great day in :) 

Technische Details
sendgrid-nodejs Version: @ sendgrid / [email protected]
Node.js Version: 8.11.2

Freundliche Grüße,
Jason

Hallo, ich habe das gleiche Problem mit Transaktionsvorlagen. Die Variablen werden nicht aufgenommen. Mit Hilfe von Testdaten zur Vorschau der Vorlage im SG-Dashboard sieht alles korrekt aus.
E-Mails werden an die richtige Person gesendet und mit der richtigen Vorlage, außer dass Variablenwerte fehlen.
Ich habe vor 2 Tagen eine Legacy-Vorlage erstellt, die gut funktioniert hat, und heute bin ich zu einer neueren gewechselt
Transaktionsvorlagen und es funktioniert nicht. Ich habe gerade die alte Legacy-Vorlage dupliziert
funktioniert gut.
"@ sendgrid / mail": "6.3.1" | Node.js 8.10
Hier ist mein Code:

async function sendEmail({ email, firstName, password }) {
  const msg = {
    to: [{ email, firstName }],
    from: {
      email: "[email protected]",
      name: "name"
    },
    asm: {
      group_id: 1234
    },
    templateId: "d-64b15a042b2d41d7a4b5b6a4eea649c5",
    substitutions: {
      userName: firstName,
      email,
      password
    }
  }
  try {
    await sgMail.send(msg);
  } catch(e){
    e.message
  }

  };

Und hier ist die HTML-Vorlage:

<h3>Hi {{userName}},</h3>

<div><span style="font-size:16px;">Your account has been setup. To login please use</span></div>

<div><span style="font-size:16px;">the credentials below.</span></div>

<div>&nbsp;</div>

<div><span style="font-size:16px;"><strong>Email:</strong>&nbsp;{{email}}</span></div>

<div><strong><span style="font-size:16px;">Password:&nbsp;</span></strong><span style="color: rgb(0, 0, 0); font-family: arial; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">{{password}}</span></div>

<div><span style="font-weight: 600; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-family: arial; font-size: 14px; color: rgb(0, 0, 0);"><span style="font-size: 16px;">SignIn Url: <a href="https://a.abc.com">https://a.abc.com/</a></span></span></div>

<div>&nbsp;</div>

<div>&nbsp;</div>

<div><span style="font-size:16px;">Please let us know if you need any help, email us at <a href="mailto:[email protected]">[email protected]</a></span></div>

Prost

Ich habe gerade auf die Legacy-Vorlage mit demselben HTML-Code umgestellt und es funktioniert. Kann es an neuen Änderungen in der V3-API liegen?

Hallo, nachdem ich den Kommentar von hatte , habe ich mit einer Legacy-Vorlage getestet und es hat funktioniert. Danke @himanshupnt .

Später fand ich die Sendgrid-Dokumentation Mail Send with Dynamic Transactional Templates . Ich habe die neue Vorlage (nicht die Legacy-Vorlage) zum Laufen gebracht. Ich habe dieselbe HTML-Vorlage verwendet und mein Code wurde aktualisiert auf:

  const sgMail = require("@sendgrid/mail");
  sgMail.setApiKey(process.env.SENDGRID_API_KEY);
  sgMail.setSubstitutionWrappers("{{", "}}"); // Configure the substitution tag wrappers globally

  const msg = {
    from: "[email protected]",
    templateId: "d-27e7d954368c46519eddc806e5cf8156",
    personalizations: [
      {
        to: [
          {
            email: "[email protected]"
          }
        ],
        dynamic_template_data: {
          name: "Someone",
          city: "Somewhere",
          subject: "Hello new world"
        }
      }
    ]
  };

  sgMail.send(msg).catch(err => console.error(err.message));

Beachten Sie, dass ich "Ersetzungen" durch "dynamic_template_data" ersetzt und "innerhalb" von "Personalisierungen" platziert habe, wie in den Dokumenten gefordert. Und ich habe das Thema auch als eines der "dynamic_template_data" behandelt und es funktioniert. (Geben Sie {{subject}} in das Feld für den Betreff der Vorlage ein.)

Vielen Dank.

@nrator Das hat es auch für mich getan. Danke, dass du es gepostet hast!

Ich habe das gleiche Problem und habe auch ein Problem geöffnet (nachdem ich die eingangs erwähnten Lösungen ausprobiert habe). Ich konnte jedoch name und city zu der von @nrator erwähnten Vorlage <%subject%> und <%body%> nicht ersetzen, da sie in der E-Mail enthalten sind, die ich erhalte. Wie kann ich <%body%> und <%subject%> ersetzen? @himanshupnt wie hast du das gelöst?

Hi @ pankaja92 , ich konnte <% subject%> auch nicht zum

Ich habe diese sendgrid-Dokumente gefunden, die helfen können. Der Betreff param scheint jedoch nicht zu funktionieren.

@nrator Danke. Es funktionierte. Es ist also nicht nötig, <% body%> zu verwenden (da es auch nicht wie im angegebenen Beispiel funktioniert).

Übrigens nicht themenspezifisch - aber haben Sie Erfahrung oder ein Beispiel, um eine Liste mit Details über diese Bibliothek zu senden? Ich suche etwas, das mir beim Erstellen meiner App helfen könnte :)

@ pankaja92 Ich bin mir nicht sicher, was du mit dem Senden einer Liste von Details meinst. Sie können diesen sendgrid-Blogbeitrag über neue Funktionen der dynamischen Vorlagen lesen. Grundsätzlich können Sie jetzt über Listen von Elementen iterieren oder grundlegende Bedingungen verwenden, um dynamische Inhalte zu generieren.

Die tatsächlichen Codes finden Sie in diesem Repo .

Ich hoffe es hilft!

Hallo zusammen, habe auch ein paar Stunden mit diesem Thema verbracht.

Verwenden Sie statt substitutions dynamicTemplateData im Hauptobjekt msg :

const sgMail = require('@sendgrid/mail')

sgMail.setApiKey(process.env.SENDGRID_API_KEY)
sgMail.setSubstitutionWrappers('{{', '}}')

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  templateId: 'd-27e7d954368c46519eddc806e5cf8156',
  dynamicTemplateData: {
    name: 'Some One',
    city: 'Denver',
  },
}

sgMail.send(msg)

Referenz: https://github.com/sendgrid/sendgrid-nodejs/pull/691

Laut dieser PR wird, wenn templateId eine dynamische Vorlage ist (mit dem Präfix d- ), die substitutions nicht gesendet, also die dynamicTemplateData Objekt sollte verwendet werden.

Sie haben hier ein Problem erstellt, um die Verwendung dynamischer Vorlagen zu den Dokumenten zu verbessern, aber bis dahin hoffe ich, dass dies hilft. 🎉

Bitte folgen Sie diesem Problem: # 703

ändere 'Substitutionen' in 'dynamic_template_data'

@jseyfert sollte es nicht dynamic_template_data ?

@aroach du bist richtig. Ich habe meinen Kommentar aktualisiert.

Anfangs hat es auch auf meiner Seite nicht funktioniert.
Ich habe festgestellt, dass meine Version etwas veraltet ist (ich habe @ sendgrid / mail @ 6.2.1 verwendet).
Ich habe das Paket aktualisiert, meinen Code geändert und jetzt funktioniert es:

using @ sendgrid / [email protected]

const result = await this.sgMail.send({
                personalizations: [{
                    to: this._to
                }],
                dynamicTemplateData: {
                    test: 'test' <== working (code in template: {{ test }})
                },
                templateId: this._templateId,
            });

Ich sollte beachten, dass der folgende Code nicht funktioniert:

const result = await this.sgMail.send({
                personalizations: [{
                    to: this._to,
                dynamicTemplateData: {
                    test: 'test' <== NOT working (code in template: {{ test }})
                }
                }],
                templateId: this._templateId,
            });

Ja, Sie müssen v6.3.1 für die Unterstützung von dynamic_template_data verwenden.

Am Dienstag, den 11. Dezember 2018 um 04:15 Uhr schrieb Roy Milder [email protected] :

Anfangs hat es auch auf meiner Seite nicht funktioniert.
Ich habe festgestellt, dass meine Version etwas veraltet war (ich habe verwendet
@ sendgrid / mail @ 6.2.1)
Ich habe das Paket aktualisiert, meinen Code geändert und jetzt funktioniert es:

using @ sendgrid / [email protected]

const result = warte auf this.sgMail.send ({
Personalisierungen: [{
zu: this._to
}],
dynamicTemplateData: {
test: 'test' <== funktioniert (Code in Vorlage: {{test}})
},
templateId: this._templateId,
});

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/sendgrid/sendgrid-nodejs/issues/676#issuecomment-446166152 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ACL-sjFRFP8txUETNWFVLs0chW5yyL1Nks5u35OzgaJpZM4TOB5l
.

Hallo, vergiss nicht
Erstellen Sie keine Transaktionsvorlage, erstellen Sie eine Legacy-Vorlage und erstellen Sie eine Kopie davon.
dann werden alle Schritte, die du machst, funktionieren.

dynamicTemplateData

Funktioniert bei mir. Ich habe die neueste Version der SendGrid-Bibliothek und verwende sie über Firebase (Funktionen). Das Hauptproblem ist jetzt der Mangel an TypeScript-Unterstützung - und die Dokumentation.

@roymilder , vielen Dank. Ihre Antwort machte meinen Tag - die Ersetzungen für dynamische Vorlagen sind sehr unklar.
Ein großes Lob!

Hallo @OleksiiM ,

Hilft dieses Beispiel ?

@ darren-dev,

Vielen Dank für Ihre Hilfe! Beziehen Sie sich in Bezug auf die mangelnde Unterstützung und Dokumentation von TypeScript auf die Firebase-Seite?

@uups ,

Vielen Dank für Ihre Hilfe!

Mit besten Empfehlungen,

Elmer

@thinkingserious , ja, das tut es. Dankeschön.

@OleksiiM ,

Wo hast du zuerst gesucht? Ich versuche herauszufinden, wie ich sicherstellen kann, dass Leute, die dynamische Vorlagen verwenden müssen, zu dem Link gehen, den ich Ihnen zuerst gesendet habe.

@thinkingserious
Gestartet hier .

Es sagt:
"Senden von Transaktionsvorlagen
Sie können Transaktionsvorlagen auf drei Arten senden:
Verwenden des SMTP-Relais
Einfügen der Vorlagen-ID in den Vorlagenparameter des Web API v3 Mail Send-Endpunkts
Verwenden des Parameters x-smtpapi im Endpunkt "Web API v2 Mail Send"

Also ging ich zu "Einfügen der Vorlagen-ID in den Vorlagenparameter des Mail API-Endpunkts für

Warum es unklar war:
Die letzte Seite zeigt die Liste der möglichen "Request Body Parameters", die die template_id anzeigt, aber nichts über das Feld "dynamic_template_data" aussagt. Ich habe versucht, mit "Personalisierungen" + "Ersetzungen" + "template_id" zu gehen, und es hat nicht funktioniert.
Da ich ein neuer Sendgrid-Benutzer bin, waren mir auch "alte" Vorlagen und "neue" (dynamische) Vorlagen und der Unterschied zwischen ihnen nicht bekannt (sendgrid-Dokumentseiten von oben sagen nichts darüber aus).

Vielen Dank, dass Sie gefragt und die Dokumente verbessert haben. Ich hoffe, dass andere Leute diese Art von Problemen vermeiden.

@thinkingserious wenn ich hinzufügen darf:
Ich verwende derzeit die folgenden Dokumente: https://sendgrid.com/docs/API_Reference/api_v3.html

In den Anweisungen zum Senden von E-Mails (https://sendgrid.api-docs.io/v3.0/mail-send) wird dynamic_template_data in Personalisierungen überhaupt nicht erwähnt.

Das ist also auch unklar.

Ich hoffe es hilft!

@ Whatthefoxsays ^^

Danke @OleksiiM & @roymilder! Wir freuen uns über Ihre Beiträge zur Twilio SendGrid-Community :)

Hallo zusammen, habe auch ein paar Stunden mit diesem Thema verbracht.

Verwenden Sie statt substitutions dynamicTemplateData im Hauptobjekt msg :

const sgMail = require('@sendgrid/mail')

sgMail.setApiKey(process.env.SENDGRID_API_KEY)
sgMail.setSubstitutionWrappers('{{', '}}')

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  templateId: 'd-27e7d954368c46519eddc806e5cf8156',
  dynamicTemplateData: {
    name: 'Some One',
    city: 'Denver',
  },
}

sgMail.send(msg)

Referenz: # 691

Laut dieser PR wird, wenn templateId eine dynamische Vorlage ist (mit dem Präfix d- ), die substitutions nicht gesendet, also die dynamicTemplateData Objekt sollte verwendet werden.

Sie haben hier ein Problem erstellt, um die Verwendung dynamischer Vorlagen zu den Dokumenten zu verbessern, aber bis dahin hoffe ich, dass dies hilft. 🎉

Ich habe das seit 2 Tagen gesehen und es zum Laufen gebracht.

Hallo @Travotics ,

Mit welcher Dokumentation haben Sie begonnen, bevor Sie die oben genannten gefunden haben? Ich versuche diese Erfahrung zu verbessern. Vielen Dank!

Mit besten Empfehlungen,

Elmer

@thinkingserious https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/kitchen-sink.md

Hat nicht dynamicTemplateData aber es hat substitutionWrappers und substitutions .

Neben der Aktualisierung der Dokumente ist es auch eine gute Idee, die Typschnittstelle MailData (https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/helpers/classes/) zu aktualisieren. mail.d.ts # L117). Für @ sendgrid / mail-Releases, die die substitutions nicht unterstützen, sollten sie einen V2MailData -Parameter erwarten, substitutionWrappers Felder substititons und substitutionWrappers weggelassen werden.

Hallo, nachdem ich den Kommentar von hatte , habe ich mit einer Legacy-Vorlage getestet und es hat funktioniert. Danke @himanshupnt .

Später fand ich die Sendgrid-Dokumentation Mail Send with Dynamic Transactional Templates . Ich habe die neue Vorlage (nicht die Legacy-Vorlage) zum Laufen gebracht. Ich habe dieselbe HTML-Vorlage verwendet und mein Code wurde aktualisiert auf:

  const sgMail = require("@sendgrid/mail");
  sgMail.setApiKey(process.env.SENDGRID_API_KEY);
  sgMail.setSubstitutionWrappers("{{", "}}"); // Configure the substitution tag wrappers globally

  const msg = {
    from: "[email protected]",
    templateId: "d-27e7d954368c46519eddc806e5cf8156",
    personalizations: [
      {
        to: [
          {
            email: "[email protected]"
          }
        ],
        dynamic_template_data: {
          name: "Someone",
          city: "Somewhere",
          subject: "Hello new world"
        }
      }
    ]
  };

  sgMail.send(msg).catch(err => console.error(err.message));

Beachten Sie, dass ich "Ersetzungen" durch "dynamic_template_data" ersetzt und "innerhalb" von "Personalisierungen" platziert habe, wie in den Dokumenten gefordert. Und ich habe das Thema auch als eines der "dynamic_template_data" behandelt und es funktioniert. (Geben Sie {{subject}} in das Feld für den Betreff der Vorlage ein.)

Vielen Dank.

Vielen Dank dafür! Ich habe viel Zeit damit verbracht, dafür zu debuggen. : /

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen