Arn*_*rdt 2 html php email laravel laravel-5
我喜欢使用MailMessage将一些html标签添加到我的邮件正文中,如下所示:
$mailMessage = new MailMessage();
$mailMessage->line(trans('mail.someLine') );
Run Code Online (Sandbox Code Playgroud)
在mail.php中:
'someLine' => 'Bla bla <a href="html://someurl">html://someurl</a>'
Run Code Online (Sandbox Code Playgroud)
但在实际邮件中,整行都以纯文本形式出现.
我试过使用html_entity_decode但没有任何成功:
$mailMessage->line(html_entity_decode(trans('mail.someLine')));
Run Code Online (Sandbox Code Playgroud)
看起来像行方法它自己编码.这有解决方法吗?
ps其余的邮件都有正确的HTML,所以这不是重点!
更新:$ mailMessage->在这种情况下不会执行操作.让我们说它应该适用于这样的事情:
$mailMessage->line('Bla bla <strong>something strong</strong> bla');
检查MailMessage/SimpleMessage代码我发现这些类不是编码,而是email.blade.php模板本身.
将{{ $line }}部分更改为 {!! $line !!}email.blade.php最终成功了.
ps确保先运行,php artisan vendor:publish这样就不需要更改vendor文件夹中的原始email.blade.php!
小智 7
更好地使用HtmlString类。
use Illuminate\Support\HtmlString;
return (new MailMessage)
->line(new HtmlString($someHtmlBody));
Run Code Online (Sandbox Code Playgroud)
行将显示为已处理的HTML代码。