¿Cómo representar el tipo de datos html en la plantilla de correo electrónico magento2?

13

Tengo una plantilla de correo electrónico en Magento 2: email-template.html

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

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

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

Pero en variable $data.bodyes código html no 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>

Entonces, cómo representar el código html cuando se envía, envía un correo electrónico. ¡Muchas gracias!

Este es el resultado cuando el código de excusa print_r($this->_message->getBody());en la sendMessage()función:

ingrese la descripción de la imagen aquí

xanka
fuente

Respuestas:

19

Me cambio {{trans "%body" body=$data.body}}a {{trans "%body" body=$data.body|raw}}. rinde éxito.

xanka
fuente
8

Úselo |rawcon su variable param.

ejemplo: {{var data|raw}}

donde data es una variable param que pasó a una plantilla y contiene un valor que es código HTML. data=<html code>

Bhargav Joshi
fuente
gracias es muy útil
Pradip Garchar
5

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

Recuerde cambiar type="text"a type="html"in email_templates.xml, de lo contrario obtendrá HTML simple en sus correos.

Imran Zahoor
fuente
Muchas gracias por el tip type = "html". Acabo de cometer un error frío, ¡arruina alrededor de media hora!
DRAJI