我正在使用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('[email protected]')
->view('emails.template');
}
}
mailAdmin.php
public function handle()
{
}
我的命令句柄仍然是空的,但是我以前尝试在命令中从上面的控制器实现逻辑,但是没有用。
我写错了代码,是因为它不起作用,还是应该以其他方式处理?很高兴知道我还在学习Laravel,并且从未通过代码发送过电子邮件。欢迎任何提示或解决方案。
假设您已正确设置电子邮件配置。将此添加到您的mailAdmin.php
use Mail;
use App\Mail\sendMail
public function handle()
{
Mail::to('[email protected]')->send(new sendMail);
}
然后运行命令