feat: sparkles: form back and front + newsletter subscribe and unsubscribe + alert message
53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs\Mails;
|
|
|
|
use App\Enums\Contact\ContactFormType;
|
|
use App\Mail\ContactMail;
|
|
use App\Models\MailContactData;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Foundation\Bus\Dispatchable;
|
|
use Illuminate\Queue\InteractsWithQueue;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Illuminate\Support\Facades\Mail;
|
|
|
|
class SendContactMail implements ShouldQueue
|
|
{
|
|
use Dispatchable;
|
|
use InteractsWithQueue;
|
|
use Queueable;
|
|
|
|
/** @var array List of recipients mails */
|
|
private array $mailList;
|
|
|
|
/**
|
|
* Create a new job instance.
|
|
*
|
|
* @param \App\Models\MailContactData $data
|
|
* @return void
|
|
*/
|
|
public function __construct(private MailContactData $data)
|
|
{
|
|
$this->mailList = ContactFormType::make($data->enumType)->getContactMails();
|
|
}
|
|
|
|
/**
|
|
* Execute the job.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function handle(): void
|
|
{
|
|
foreach ($this->mailList as $recipient) {
|
|
Mail::to($recipient)->send(new ContactMail($this->data));
|
|
}
|
|
Log::debug(
|
|
sprintf(
|
|
'Sent %s to %s',
|
|
$this->data->enumType->label(),
|
|
implode(',', $this->mailList)
|
|
)
|
|
);
|
|
}
|
|
}
|