使用Laravel发送HTML电子邮件模板

时间:2016-07-01 06:00:05

标签: php laravel-5.2 html-email email-templates

我创建了一个名为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');
 });

收到的电子邮件是这样的:

enter image description here

根据我应该接收html格式的文档,但我收到简单的基于文本的电子邮件。有线索吗?

3 个答案:

答案 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);