Files
webstatement/app/Jobs/SendEmailBlast.php
Daeng Deni Mardaeni a54f32dc16 feat(email-blast): tambahkan job untuk mengirim email blast
- Membuat kelas SendEmailBlast yang mengimplementasikan ShouldQueue.
- Menyediakan konstruktor untuk menerima riwayat email blast dan daftar penerima.
- Mengirim email menggunakan EmailBlastMail untuk setiap penerima.
- Memperbarui status riwayat email blast setelah pengiriman selesai.
2025-02-18 16:36:20 +07:00

36 lines
1017 B
PHP

<?php
namespace Modules\Webstatement\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use Modules\Webstatement\Models\EmailBlastHistory;
use Modules\Webstatement\Mail\EmailBlastMail;
class SendEmailBlast implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $emailBlastHistory;
protected $recipients;
public function __construct(EmailBlastHistory $emailBlastHistory, array $recipients)
{
$this->emailBlastHistory = $emailBlastHistory;
$this->recipients = $recipients;
}
public function handle()
{
foreach ($this->recipients as $recipient) {
Mail::to($recipient)->send(new EmailBlastMail($this->emailBlastHistory));
}
$this->emailBlastHistory->update(['status' => 'completed']);
}
}