Как сделать тип данных HTML в шаблоне электронной почты magento2?

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()функции:

введите описание изображения здесь

xanka
источник

Ответы:

19

Я изменяю {{trans "%body" body=$data.body}}на {{trans "%body" body=$data.body|raw}}. это оказывает успех.

xanka
источник
8

Используйте |rawс вашей переменной param.

пример: {{var data|raw}}

где data - это переменная param, которая передается в шаблон и содержит значение, являющееся HTML-кодом. data=<html code>

Бхаргав Джоши
источник
спасибо, что это очень полезно
Pradip Garchar
5

Вместе с {{trans "%body" body=$data.body}}к {{trans "%body" body=$data.body|raw}}.

Не забывайте , чтобы изменить , type="text"чтобы type="html"в email_templates.xmlпротивном случае вы получите простой HTML в ваших письмах.

Имран Захур
источник
Большое спасибо за подсказку type = "html". Я только что сделал холодную ошибку, Это разрушает около получаса!
ДРАДЖИ