템플릿 이메일 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}}

여기서 data는 템플릿으로 전달되는 param 변수이며 HTML 코드 값을 포함합니다. data=<html code>


매우 유용합니다
Pradip Garchar

5

과 함께 {{trans "%body" body=$data.body}}{{trans "%body" body=$data.body|raw}}.

에서 로 변경 type="text"해야합니다 . 그렇지 않으면 메일에 일반 HTML이 표시됩니다.type="html"email_templates.xml


tip type = "html"에 대해 대단히 감사합니다. 방금 쌀쌀한 실수를 했어요.
DRAJI
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.