116 lines
3.7 KiB
PHP
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 einen 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();
|
|
}
|
|
}
|