MJMLで書かれたメールのテンプレートで、Vars
から配列の値を使用して送信者が受信したいアイテムのリストを生成するメール受信者。配列内のすべての値はプレーンテキスト値です。Mailjet:varsによって配列の値を指定すると、メールが送信時にブロックされる
APIリクエストに渡されたデータは次のようになります限りvar:records
がで送信されたデータに設定されていないよう
...
</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>
...
:
{
"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"
}
}
テンプレートは以下のようにvar:records
を使用しています要求すると、メールは期待通りに送信されます。要求に(空ではない)配列値が提供されるとすぐに、Mailjetは送信時にメールをブロックし、理由の詳細を知らせません。
この仕組みをどのように取得するかわかりません。
UPDATE:私は問題にもう少し洞察を得ることができましたMailjetによって提供されるエラー報告機構にZhivkoのヒントに
感謝。言及したラインがために値なしの場合のために定義されfalse
のデフォルト値を持つif
条件であるように、これはまだ私にはどんな意味がありません
expression parsing error ## Unknown identifier: var:records:false ## near ## var:records:false ##
:
テンプレートには、次のエラーを生成しますvar:records
にはapiリクエストが提供されています。 また、値がVars
に明示的に設定されていて、でない場合、このテンプレートはこのエラーを生成しません。が空です。 これまでのテストでは、指定された値がの配列の値でなければならない場合があります。数値が平文の場合は問題ありません。の文字列です。
ヒントのためにありがとう。問題の詳細を知ることができました。質問を更新しました。サポートチケットも開きます。 – Oliver