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

Sending HTML email templates using Laravel

我创建了一个名为 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 格式,但我收到的是简单的基于文本的电子邮件。有什么线索吗?

来源:https://laravel.com/docs/5.1/mail

默认情况下,假定给发送方法的视图包含 HTML。但是,通过将数组作为第一个参数传递给 send 方法,除了 HTML 视图之外,您还可以指定要发送的纯文本视图:

Mail::send(['html.view', 'text.view'], $data, $callback);

或者,如果您只需要发送纯文本电子邮件,您可以使用数组中的文本键指定:

Mail::send(['text' => 'view'], $data, $callback);

只是发布答案,因为这可能对其他人有用。 已更改

  {{$emailBody}}

  <?= $emailBody ?>

它就像一个魅力。

双花括号转义其中的html,您需要对未转义的字符串使用不同的语法。

所以不用

{{ $emailBody }}

你应该使用

{!! $emailBody !!}

您可以在此处阅读更多信息:https://laravel.com/docs/5.5/blade#displaying-data