【问题标题】:Email body and Title is not working in Laravel电子邮件正文和标题在 Laravel 中不起作用
【发布时间】:2020-11-04 12:57:01
【问题描述】:

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

这是我的控制器类

<?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>

【问题讨论】:

    标签: php laravel email laravel-blade


    【解决方案1】:

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

     <?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');    
        }
    }
    

    【讨论】:

    • @Shasika Madhushan 不用担心。
    • 根据您的回复应用 _construct 方法的更改后,所有必需的东西都可以正常工作
    猜你喜欢
    • 2013-01-02
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2017-03-07
    • 2017-06-20
    相关资源
    最近更新 更多