Dev*_*s50 20 html php email newline laravel
我目前正在尝试在Laravel 5中创建一个HTML电子邮件,我有一些文本(包含<br/>元素)我想在电子邮件中插入.我使用以下代码发送电子邮件:
Mail::send(array('html' => 'emails.newinvoice'), array('text' => $emailtext), function($message) use ($email, $subject, $contact_company)
{
$message->to($email, $contact_company)->subject($subject);
});
Run Code Online (Sandbox Code Playgroud)
因此该$emailtext变量包含一些带有HTML标记的文本.在我的emails.newinvoice布局视图中,我有以下内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<p>{{{ $text }}}</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
发送电子邮件时,我邮件中插入的文本和该文本中的HTML元素显示为普通字符,这意味着我的电子邮件显示如下:
test<br/>test
Run Code Online (Sandbox Code Playgroud)
代替
test
test
Run Code Online (Sandbox Code Playgroud)
如何确保插入文本中的HTML标记呈现为HTML而不是纯文本?
Lim*_*nte 28
您需要html在第一个参数中指定键:
Mail::send( ['html' => 'emails.newinvoice'], ['text' => $emailtext],
// ^^^^
Run Code Online (Sandbox Code Playgroud)
同样替换模板中未{{ }}转义的自动转义块{!! !!}:
<p> {!! $text !!} </p>
Run Code Online (Sandbox Code Playgroud)
Igo*_*vić 15
你需要使用:
{!! $text !!}
Run Code Online (Sandbox Code Playgroud)
代替
{{ $text }}
Run Code Online (Sandbox Code Playgroud)
除非你明确告诉它,否则Blade会在回显时自动转义任何html.
| 归档时间: |
|
| 查看次数: |
22440 次 |
| 最近记录: |