diff --git a/app/Actions/SendMail/SendNewsletter.php b/app/Actions/SendMail/SendNewsletter.php index 1f5dd13..bd74ec7 100644 --- a/app/Actions/SendMail/SendNewsletter.php +++ b/app/Actions/SendMail/SendNewsletter.php @@ -6,6 +6,7 @@ use App\Jobs\SendNewsletterJob; use App\Models\MailAdressen; use App\Models\MailGruppen; use App\Models\MailVorlage; +use Filament\Notifications\Notification; class SendNewsletter { @@ -57,27 +58,46 @@ class SendNewsletter // "first_name" => "Hermann" // "last_name" => "Telser" - foreach ($adressen as $mail_data) { + $mails_send = 0; - $mail_data->subjekt = $template->subjekt; - $mail_data->email = $template->email; - $mail_data->absender_name = $gruppe->absender_name; - $mail_data->absender_mail = $gruppe->absender_mail; + foreach ($adressen as $adresse) { - if ($mail_data->anrede == 'Höflich') { - if ($mail_data->gender) { - $anrede = 'Sehr geehrte Frau '.$mail_data->last_name; + $data = []; + $data['subjekt'] = $template->subjekt; + $data['email'] = $adresse->email; + $data['absender_name'] = $gruppe->absender_name; + $data['absender_email'] = $gruppe->absender_mail; + + if ($adresse->anrede == 'Höflich') { + if ($adresse->gender) { + $anrede = 'Sehr geehrte Frau '.$adresse->last_name; } else { - $anrede = 'Sehr geehrter Herr '.$mail_data->last_name; + $anrede = 'Sehr geehrter Herr '.$adresse->last_name; } } else { - $anrede = 'Hallo '.$mail_data->first_name; + $anrede = 'Hallo '.$adresse->first_name; } - $mail_data->inhalt = str_replace('###anrede###', $anrede, $template->inhalt); + $data['inhalt'] = str_replace('###anrede###', $anrede, $template->inhalt); - SendNewsletterJob::dispatch($mail_data); + SendNewsletterJob::dispatch($data); + $mails_send++; } + + if ($mails_send == 1) { + $text = 'Der Newsletter wurde an einem Empfänger versandt'; + } elseif ($mails_send > 1) { + $text = 'Der Newsletter wurde an '.$mails_send.' Empfänger versandt'; + } else { + $text = 'Der Newsletter wurde nicht verschickt'; + } + + Notification::make() + ->title('Newsletter') + ->success() + ->icon('heroicon-o-exclamation-triangle') + ->body($text) + ->send(); } } diff --git a/app/Jobs/SendNewsletterJob.php b/app/Jobs/SendNewsletterJob.php index c0328fd..419eaf1 100644 --- a/app/Jobs/SendNewsletterJob.php +++ b/app/Jobs/SendNewsletterJob.php @@ -11,14 +11,14 @@ class SendNewsletterJob implements ShouldQueue { use Queueable; - public $mail_data; + public $data; /** * Create a new job instance. */ - public function __construct($mail_data) + public function __construct($data) { - $this->mail_data = $mail_data; + $this->data = $data; } /** @@ -26,6 +26,6 @@ class SendNewsletterJob implements ShouldQueue */ public function handle(): void { - Mail::to($this->mail_data->email)->send(new Newsletter($this->mail_data)); + Mail::to($this->data['email'])->send(new Newsletter($this->data)); } } diff --git a/app/Mail/Newsletter.php b/app/Mail/Newsletter.php index c591208..171c242 100644 --- a/app/Mail/Newsletter.php +++ b/app/Mail/Newsletter.php @@ -13,14 +13,14 @@ class Newsletter extends Mailable { use Queueable, SerializesModels; - public $mail_data; + public $data; /** * Create a new message instance. */ - public function __construct($mail_data) + public function __construct($data) { - $this->mail_data = $mail_data; + $this->data = $data; } /** @@ -29,8 +29,8 @@ class Newsletter extends Mailable public function envelope(): Envelope { return new Envelope( - from: new Address($this->mail_data->absender_email, $this->mail_data->absender_name), - subject: $this->mail_data->subjekt, + from: new Address($this->data['absender_email'], $this->data['absender_name']), + subject: $this->data['subjekt'], ); } diff --git a/resources/views/mail/newsletter.blade.php b/resources/views/mail/newsletter.blade.php index 5a8d077..714d323 100644 --- a/resources/views/mail/newsletter.blade.php +++ b/resources/views/mail/newsletter.blade.php @@ -3,7 +3,7 @@
-