我创建了一个名为dummy.blade.php的文件,其中包含以下代码
<!DOCTYPE html>
<html lang="en-EN">
<head>
<meta charset="utf-8">
</head>
<body bgcolor="#11C9FF">
{{$emailBody}}
</body>
</html>
我正在尝试使用以下方式发送HTML内容:
Mail::send('emailTemplates.dummy', ['emailBody'=>'<h1>TESTING</h1>'], function($message)
{
$message->to($myEmail)->subject('Password reset');
});
收到的电子邮件是这样的:
根据我应该接收html格式的文档,但我收到简单的基于文本的电子邮件。有线索吗?
答案 0 :(得分:1)
只是发布答案,因为这可能对其他人有用。 改变了
{{$emailBody}}
到
<?= $emailBody ?>
它就像一个魅力。
答案 1 :(得分:1)
双花括号转义它们内部的html,你需要为非转义字符串使用不同的语法。
所以而不是
{{ $emailBody }}
你应该使用
{!! $emailBody !!}
您可以在此处详细了解:https://laravel.com/docs/5.5/blade#displaying-data
答案 2 :(得分:0)
来源:https://laravel.com/docs/5.1/mail
默认情况下,假定send方法的视图包含HTML。但是,通过将数组作为第一个参数传递给send方法,除了HTML视图之外,您还可以指定要发送的纯文本视图:
Mail::send(['html.view', 'text.view'], $data, $callback);
或者,如果您只需要发送纯文本电子邮件,则可以使用数组中的文本键指定:
Mail::send(['text' => 'view'], $data, $callback);