如何在Laravel命令而不是控制器中发送电子邮件

我正在使用Laravel开发一个项目,我希望能够在计划发送时发送电子邮件。

到目前为止,我只找到了通过路由发送邮件的解决方案,但是我希望能够在cron激活我的自制命令时发送邮件。我已经查看了应该发送的邮件,并使用php artisan make:mail sendMail创建了一个sendMail页面,该页面返回了邮件视图。

sendMail.php

 <?php

 namespace App\Mail;
 use Illuminate\Support\Facades\DB;
 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 function __construct()
{
    $winnersposts = DB::select('select post_id from winners group by post_id');
    $posts = DB::select('select * from posts ');

    $this->winnerposts =$winnersposts;
    $this->posts=$posts;
}

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{

    return $this ->from('ivanrompa@gmail.com')
                 ->view('emails.template');
}

}

mailAdmin.php

public function handle()
{

}

我的命令句柄仍然是空的,但是我以前尝试在命令中从上面的控制器实现逻辑,但是没有用。

我写错了代码,是因为它根本不起作用,还是应该以其他方式处理?很高兴知道我还在学习Laravel,并且从未通过代码发送过电子邮件。欢迎任何提示或解决方案。

zhenzhengdeyu 回答:如何在Laravel命令而不是控制器中发送电子邮件

假设您已正确设置电子邮件配置。 将此添加到您的mailAdmin.php

use Mail;
use App\Mail\sendMail

public function handle()
{
  Mail::to('recipient@gmail.com')->send(new sendMail);
}

然后运行命令

本文链接:https://www.f2er.com/3146473.html

大家都在问