Ich arbeite an einer E-Mail-Vorlage für Mailjet in MJML geschrieben, die einen Array-Wert über Vars
verwendet, um eine Liste von Elementen zu generieren, die der Absender erhalten möchte Mail-Empfänger. Alle Werte im Array sind reine Textwerte.Mailjet: Array-Wert durch vars zur Verfügung gestellt blockiert E-Mail beim Senden blockiert
die Daten an die API-Anforderung übergeben wie folgt aussieht:
{
"FromEmail":"[email protected]",
"FromName":"Chris Crumble",
"Subject":"Data Request",
"MJ-TemplateID":"200000",
"MJ-TemplateLanguage":true,
"Recipients":[
{
"Email":"[email protected]",
"Name":"Hans Henson"
}
],
"Vars":{
"mailTitle":"Data Request",
"userName":"Chris Crumble",
"imageUrl":"http://my.host.com/image.jpg",
"userBirthDate":"1.3.1982",
"recipientName":"Hans Henson",
"uploadUrl":"https://my.upload.com/",
"authVideoUrl":"https://my.authvideo.com",
"records":["Document A","Document B"],
"authPhone":"113777840097"
}
}
Die Vorlage var:records
wie folgt verwendet:
...
</mj-text>
<mj-raw> {% if var:records:false %} </mj-raw>
<mj-text>
<p>
I, <strong>{{var:userName}}, born on {{var:userBirthDate}}</strong> am asking you to provide the following documents:
</p>
</mj-text>
<mj-raw> {% for item in var:records %} </mj-raw>
<mj-text>
{{item}}
</mj-text>
<mj-raw> {% endfor %} </mj-raw>
<mj-raw> {% else %} </mj-raw>
<mj-text>
<p>
I, <strong>{{var:userName}}, born on {{var:userBirthDate}}</strong>, am asking you to provide all my existing documents.
</p>
</mj-text>
<mj-raw> {% endif %} </mj-raw>
<mj-text>
...
Solange var:records
nicht in den Datensatz mit der gesendeten Anfrage wird die Mail wie erwartet gesendet. Sobald ein (nicht leerer) Array-Wert mit der Anfrage zur Verfügung gestellt wird, wird die Mail von Mailjet beim Versand gesperrt, ohne weitere Informationen über den Grund zu geben.
Keine Ahnung, wie man das funktioniert.
UPDATE:
Dank Zhivko der Hinweis auf die Fehlerberichterstattung Mechanismus von Mailjet versehen konnte ich ein wenig mehr Einblick in das Problem gewinnen.
Die Vorlage erzeugt den folgenden Fehler:
expression parsing error ## Unknown identifier: var:records:false ## near ## var:records:false ##
diese noch keinen Sinn für mich macht, wie die erwähnte Linie einen if
Zustand mit einem Standardwert von false
für den Fall festgelegt, dass kein Wert für var:records
wird mit der API-Anfrage bereitgestellt. Auch die Vorlage erzeugt nur diesen Fehler, wenn der Wert explizit in Vars
festgelegt ist und nicht leer ist. Meine bisherigen Tests lassen mich vermuten, dass es möglicherweise mit dem angegebenen Wert zu tun hat, der ein Array Wert ist, da die Linie keine Probleme verursacht, wenn der Wert einfach String ist.
Danke für den Hinweis. Hat mir geholfen, mehr Informationen über das Problem zu bekommen. Aktualisiert die Frage accododingly. Öffnet auch ein Support-Ticket. – Oliver