首页 > 解决方案 > 电子邮件正文和标题在 Laravel 中不起作用

问题描述

就我而言,我需要在单击批准按钮时发送邮件。所以电子邮件发送工作没有完成,但电子邮件内容没有发送,但我无法确定有什么问题,

这是我的控制器类

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use \App\Mail\SendMail;

class MailSend extends Controller
{
    public function mailsend()
    {
        $details = [
            'title' => 'Title: Mail from xxxxxxx',
            'body' => 'Body: This is for testing email using smtp'
        ];

        \Mail::to('shasikamadushan555@gmail.com')->send(new SendMail($details));
        return view('emails.thanks');
    }
}

然后这是邮件文件夹中的我的邮件类

 <?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class SendMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $details;

    public function __construct()
    {
        //
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Mail from Codex')
        ->view('emails.sendmail');    
    }
}

然后根据邮件内容显示我的刀片文件,

<!DOCTYPE html>
<html>
<head>
    <title>Company Name</title>
</head>
<body>
    <h1>{{ $details['title'] }}</h1>
    <p>{{ $details['body'] }}</p>
    <p>Thank you</p>
</body>
</html>

在这个 sendmail.blade.php 中用于提供邮件内容,但在我的情况下

<title>Conpany Name</title> 
<h1>{{ $details['title'] }}</h1>
<p>{{ $details['body'] }}</p> 

以上标签未显示在收到的邮件中,但我需要在接收邮件中打印以上内容仅显示此标签

<p>Thank you</p>

标签: phplaravelemaillaravel-blade

解决方案


可能没有在构造函数中设置细节。

 <?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class SendMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $details;

    public function __construct($details)
    {
        $this->details = $details;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Mail from Codex')
        ->view('emails.sendmail');    
    }
}

推荐阅读