Шаблон Laravel 5 Mail с HTML-тегами

У меня есть основной почтовый шаблон (resources / views / mail.blade.php). Это общий шаблон для использования всей моей почты, например, для забытого пароля или для смены нового пароля. Содержание mail.blade.php приведено ниже:

<table>
<tr><td>SiteName</td>
</tr>
<tr><td>{{$content}}</td></tr>
</table>

Я сохраняю содержимое шаблона электронной почты (в mySql db) через CKEditor, и это выглядит так:

<p>Dear {{$username}},</p>
<p>This is your new password: {{$newPassword}}</p>

Теперь я использую почтовую функцию в laravel 5.5, как показано ниже:

$content = str_replace(array('username', 'newPassword'), array($userName, $request->confirm_password), addslashes($emailTemplate->templateBody));

Mail::send(['html' => 'mail'], ['content' => $content], function ($message) use($emailTemplate, $user){
$message->from($emailTemplate->fromEmail, $emailTemplate->fromName);
$message->to($user->email);
});

После отправки электронной почты в mailtrap.io я вижу, что письмо выглядит так:

SiteName
<p>Dear Niladri,</p> <p>This is your new password: 123456</p> 

Обратите внимание, что таблица tr, td, в которой записано имя сайта в mail.blade, работает, и в электронном письме не отображается HTML-код. Это нормально. Но только контент из CKEditor отображается с тегами HTML (<p></p>).

Я сделал что-нибудь не так?


person Niladri Banerjee - Uttarpara    schedule 31.05.2018    source источник


Ответы (2)


Чтобы использовать содержимое HTML из переменной PHP в файле .blade.php, необходимо использовать {!! $variable !!} вместо {{ $variable }}. Первый будет отображать ваш HTML, второй - в виде строки, включая HTML-теги. Ваш mail.blade.php файл должен выглядеть так:

<table>
  <tr>
    <td>SiteName</td>
  </tr>
  <tr>
    <td>{!! $content !!}</td>
  </tr>
</table>
person Tim Lewis    schedule 31.05.2018
comment
Спасибо, это было полезно :) - person Neha; 18.04.2020

Используйте {!! $content !!} вместо {{ $content }}. Он будет работать отлично. Я столкнулся с той же проблемой.

person Chandni Handa    schedule 12.03.2019
comment
Привет, просто пришлите мне ссылку с этого веб-сайта Wordpress. - person RïshïKêsh Kümar; 13.09.2019