Files
nutzwerte_fi4/app/Actions/SendMail/SendNewsletter.php
T
2026-05-08 10:27:23 +02:00

84 lines
2.6 KiB
PHP

<?php
namespace App\Actions\SendMail;
use App\Jobs\SendNewsletterJob;
use App\Models\MailAdressen;
use App\Models\MailGruppen;
use App\Models\MailVorlage;
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('deaktiviert', 0)->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"
foreach ($adressen as $mail_data) {
$mail_data->subjekt = $template->subjekt;
$mail_data->email = $template->email;
$mail_data->absender_name = $gruppe->absender_name;
$mail_data->absender_mail = $gruppe->absender_mail;
if ($mail_data->anrede == 'Höflich') {
if ($mail_data->gender) {
$anrede = 'Sehr geehrte Frau '.$mail_data->last_name;
} else {
$anrede = 'Sehr geehrter Herr '.$mail_data->last_name;
}
} else {
$anrede = 'Hallo '.$mail_data->first_name;
}
$mail_data->inhalt = str_replace('###anrede###', $anrede, $template->inhalt);
SendNewsletterJob::dispatch($mail_data);
}
}
}