【问题标题】:email sends whole html page(instead of email body) in laravel 5.1电子邮件在 laravel 5.1 中发送整个 html 页面(而不是电子邮件正文)
【发布时间】:2016-02-24 16:19:00
【问题描述】:

我正在制作联系表格。如果有人填写表格,数据(文本、主题)应发送到我的邮箱。一切正常,但是当我填写表单并发送电子邮件时,它会发送整个 HTML 页面(不仅仅是表单中的文本)。

这是它的样子

这是我发送邮件的控制器

 public function sendEmail(Request $request)
{

    $data["username"] = $request->username;
    $data["email"] = $request->email;
    $data["subject"] = $request->subject;
    $data["mail_text"] = $request->mail_text;

    Mail::send('contact', ["data" => $data], function ($mail) use ($data){

        $mail->to("leribobo@gmail.com")->from($data["email"])->subject($data["subject"]);

    });

    return redirect()->back();
}

我猜它会发送“联系人”页面,这是方法中的第一个参数

 Mail::send('contact' .... 

【问题讨论】:

  • 实际上 laravel Mail::send 发送整个 html 它不是在 body 标记内发送 html 它在该视图中发送整个 html。

标签: php laravel laravel-5 laravel-5.1


【解决方案1】:

您实际上是在发送contact.blade.php 文件。这不是我们应该发送邮件的方式。

Mail::send('emails.contact', $data, function ($message) {
    //

     $message->from('us@example.com', 'Laravel');

     $message->to('foo@example.com')->cc('bar@example.com');
});

您必须在emails.contact.blade.php 中创建一个文件并将$data 传递给刀片文件,如上所示。

在这里查看:https://laravel.com/docs/5.1/mail#sending-mail

【讨论】:

  • 感谢您的回复。你能告诉我,我只想发送邮件(例如,如果有人填写表格并发送邮件,这封邮件应该进入我的 gmail 收件箱)所以现在我应该创建另一个 contact.blade.php 文件或只创建电子邮件文件夹和把我的contact.blade.php文件放在那里?
  • 在您的电子邮件文件夹中创建一个contact.blade.php 文件。现在在您替换$data 值的那个页面中创建一个html 代码块。该文件实际上正在发送到电子邮件。
猜你喜欢
  • 2012-11-11
  • 2020-05-15
  • 2022-08-13
  • 2017-11-01
  • 2017-09-25
  • 1970-01-01
  • 2019-07-04
  • 2021-04-25
  • 2017-01-16
相关资源
最近更新 更多