Como renderizar tipo de dados html no email de modelo magento2?

13

Eu tenho um modelo de email no Magento 2: email-template.html

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

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

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

Mas na variável o $data.bodycódigo html não o texto:

$data.body = `
<table width="100%"> 
  <tr> 
     <td>Name: </td> <td>Join Xanka </td>
  </tr> 
  <tr> <td>Email: </td> <td>[email protected]</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>

Então, como renderizar código html ao enviar e-mail. Muito obrigado!

Este é o resultado quando o código de desculpa print_r($this->_message->getBody());na sendMessage()função:

insira a descrição da imagem aqui

xanka
fonte

Respostas:

19

Eu mudo {{trans "%body" body=$data.body}}para {{trans "%body" body=$data.body|raw}}. render sucesso.

xanka
fonte
8

Use |rawcom sua variável param.

exemplo: {{var data|raw}}

em que data é uma variável param que passou para um modelo e contém um valor que é código HTML. data=<html code>

Bhargav Joshi
fonte
obrigado seu muito útil
Pradip Garchar
5

Junto com {{trans "%body" body=$data.body}}a{{trans "%body" body=$data.body|raw}} .

Lembre-se de mudar type="text"para type="html"in email_templates.xml, caso contrário, você receberá HTML simples em seus e-mails.

Imran Zahoor
fonte
Muito obrigado pela dica type = "html". Acabei de cometer um erro frio, arruina meia hora!
DRAJI 22/02/19