41 lines
1.1 KiB
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;
|
|
}
|
|
}
|