CrestRoad/laravel/app/Console/Commands/SendEmail.php

41 lines
1.1 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Mail\SessionMessage;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
class SendEmail extends Command
{
protected $signature = 'email:send';
protected $description = 'Send queued session emails';
public function handle()
{
$sends = DB::table('email_send')->where('is_sent', 0)->limit(30)->get();
foreach ($sends as $send) {
try {
Mail::to($send->to)->send(new SessionMessage($send->subject, $send->body_html));
DB::table('email_send')->where('id', $send->id)->update([
'is_sent' => 1,
'response' => 'sent',
'updated_at' => now(),
]);
} catch (\Throwable $e) {
DB::table('email_send')->where('id', $send->id)->update([
'is_sent' => 1,
'response' => $e->getMessage(),
'status' => 0,
'updated_at' => now(),
]);
}
}
return 0;
}
}