Отправить запланированное письмо в зависимости от условий пользователя (Laravel) - PullRequest
0 голосов
/ 11 марта 2019

Я столкнулся с проблемой, которую не могу решить самостоятельно.Может быть, кто-то может мне помочь.Буду очень признателен.Итак, мне нужно отправить запланированное электронное письмо на основе условий пользователей, которые хранятся в базе данных.Например, выбор пользователя: 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());
}
...