Я столкнулся с проблемой, которую не могу решить самостоятельно.Может быть, кто-то может мне помочь.Буду очень признателен.Итак, мне нужно отправить запланированное электронное письмо на основе условий пользователей, которые хранятся в базе данных.Например, выбор пользователя: 1. каждые 1,2,3 ...> часов / дней / месяцев в 12.00 / 13.00 / 14.00 ...> отправлять электронные письма с записью из базы данных.2. Если пользователь выбрал частоту (немедленно), то письмо отправляется немедленно, если отложить -> просто проверяет последнее отправленное письмо.После запуска команды php artisan schedule: run, mail send, но я не знаю, какую логику я могу использовать, чтобы добавить все необходимые мне условия, и куда именно я должен поместить эту логику.И не уверен, что это вообще возможно.Спасибо!
Моя структура сейчас:
class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule){
$schedule->call(function()
Mail::to(‘mymail@gmail.com')->send(new SendEmailMailable());}
namespace App\Mail;
class SendEmailMailable extends Mailable
use Queueable, SerializesModels;
public function build()
{
$data = [
'type' => request()->type,
'type2' => Setting::all()->pluck('type')->last(),
'from' => request()->from,
'from2' => Setting::all()->pluck('from')->last(),
'to' => request()->to,
'to2' => Setting::all()->pluck('to')->last(),
'subject' => request()->subject,
'subject2' =>Setting::all()->pluck('subject')->last(),
'header' => request()->message_header,
'header2' => Setting::all()->pluck('message_header')->last(),
'errors' => request()->errors,
'errors2' => Setting::all()->pluck('errors')->last(),
'footer' => request()->message_footer,
'footer2' => Setting::all()->pluck('message_footer')->last(),
];
if(Setting::all()->where('frequence','=','direct')->latest()->first()) {
return $this->view('mail.mail',$data);
}
else{
die;
}}}
namespace App\Jobs;
class SendEmail implements ShouldQueue
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Mail::to(‘mymail@gmail.com')->send(new SendEmailMailable());
}