Files
nutzwerte_fi4/app/Actions/SendMail/SendNewsletter.php
T
2026-05-10 10:45:48 +02:00

116 lines
3.7 KiB
PHP

<?php
namespace App\Actions\SendMail;
use App\Jobs\SendNewsletterJob;
use App\Models\MailAdressen;
use App\Models\MailGruppen;
use App\Models\MailVorlage;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
// use App\Mail\Newsletter;
// use Illuminate\Support\Facades\Mail;
class SendNewsletter
{
public static function mailit($record)
{
/***
"name" => "Arch Versand 2026"
"mail_gruppen_id" => 1
"mail_vorlage_id" => 2
"sende_zeitpunkt" => "2026-05-08 10:00:00"
"versand_am" => null
"ist_active" => 0
*/
$template = MailVorlage::where('id', $record->mail_vorlage_id)->first();
/***
"titel" => "Ein weiteres Beispiel"
"subjekt" => "Was ich noch sagen wollte"
"inhalt" => "<p><strong>Hallo ###vorname###</strong></p><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolor ▶"
*/
$gruppe = MailGruppen::where('id', $record->mail_gruppen_id)->first();
/***
"name" => "Test Versand"
"created_at" => "2026-05-06 06:42:16"
"absender_name" => ""
"absender_mail" => ""
*/
$adressen = MailAdressen::where('mail_gruppen_id', $record->mail_gruppen_id)->where('is_active', 1)->get();
/***
"mail_gruppen_id" => 1
"email" => "ht@webwerkstatt.tirol"
"company" => "WebWerkstatt.tirol"
"anrede" => "Freundschaftlich"
"gender" => "0"
"first_name" => "Hermann"
"last_name" => "Telser"
*/
// dd($record, $template, $gruppe, $adressen);
// "email" => "ht@webwerkstatt.tirol"
// "company" => "WebWerkstatt.tirol"
// "gender" => "0"
// "first_name" => "Hermann"
// "last_name" => "Telser"
$mails_send = 0;
foreach ($adressen as $adresse) {
$data = [];
$data['subjekt'] = $template->subjekt;
$data['email'] = $adresse->email;
$data['absender_name'] = $gruppe->absender_name;
$data['absender_email'] = $gruppe->absender_mail;
if ($adresse->gender) {
$data['anrede'] = 'Sehr geehrte Architektin '.$adresse->last_name.', lieber '.$adresse->first_name;
} else {
$data['anrede'] = 'Sehr geehrter Architekt '.$adresse->last_name.', lieber '.$adresse->first_name;
}
// if ($adresse->anrede == 'Höflich') {
// if ($adresse->gender) {
// $anrede = 'Sehr geehrte Architektin '.$adresse->last_name.', Lieber '.$adresse->first_name;
// } else {
// $anrede = 'Sehr geehrter Architekt '.$adresse->last_name.', Lieber '.$adresse->first_name;
// }
// } else {
// $anrede = 'Hallo '.$adresse->first_name;
// }
$data['inhalt'] = $template->inhalt;
SendNewsletterJob::dispatch($data);
// Mail::to($data['email'])->send(new Newsletter($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 = 'Fehler! Der Newsletter wurde nicht verschickt';
}
Notification::make()
->title('Newsletter')
->success()
->icon('heroicon-o-exclamation-triangle')
->body($text)
->send();
}
}