テンプレートメールmagento2でデータタイプhtmlをレンダリングする方法は?


13

Magento 2にメールテンプレートがあります:email-template.html

{{template config_path="design/email/header_template"}}

{{trans "%body" body=$data.body}}

{{template config_path="design/email/footer_template"}} 

しかし、変数に$data.bodyはテキストではなくコードhtmlがあります:

$data.body = `
<table width="100%"> 
  <tr> 
     <td>Name: </td> <td>Join Xanka </td>
  </tr> 
  <tr> <td>Email: </td> <td>xanka@gmail.com</td> </tr>
  {{depend Test Send}} 
  <tr> <td>Subject: </td> <td>Test Send</td> </tr>
  {{/depend}} 
  <tr> <td>Message: </td> <td>we try send email use to test.</td> </tr>
</table>

したがって、送信メールを送信するときにコードhtmlをレンダリングする方法。どうもありがとう!

これはprint_r($this->_message->getBody());sendMessage()関数内のコードを許可する場合の結果です。

ここに画像の説明を入力してください

回答:


19

に変更{{trans "%body" body=$data.body}}{{trans "%body" body=$data.body|raw}}ます。それは成功をもたらします。


8

|rawparam変数と共に使用します。

例: {{var data|raw}}

ここで、データはテンプレートに渡されるparam変数であり、HTMLコードである値が含まれます。 data=<html code>


その非常に便利なありがとうございます
プラディップガーチャー

5

一緒に{{trans "%body" body=$data.body}}します{{trans "%body" body=$data.body|raw}}

in に変更type="text"することを忘れないでください。そうしないと、メールにプレーンHTMLが含まれます。type="html"email_templates.xml


tip type = "html"をありがとう。私は肌寒い過ちを犯しました、それは30分ほど台無しにします!
DRAJI
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.