From 8638311065ad2e97e0e3e7e16d269cf9d48dd9b4 Mon Sep 17 00:00:00 2001 From: Marvin Flock Date: Tue, 13 May 2025 22:55:45 +0200 Subject: [PATCH] fix: send mails only when at least one email address is given --- .../components/com_sportsmanager/admin.php | 86 +++++++++++-------- .../com_sportsmanager/sportsmanager.php | 32 ++++--- 2 files changed, 66 insertions(+), 52 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 21117ea..49cc2da 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -9942,14 +9942,16 @@ function adminSaveBegegnungSpielplan(): void abortWithError($db->stderr(true)); } $rows = $db->loadObjectList(); - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($mailfrom, $fromname); - $mailer->setSubject($subject); - $mailer->setBody($body); - foreach ($rows as $row) { - $mailer->addBcc($row->email); + if(!empty($rows)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($mailfrom, $fromname); + $mailer->setSubject($subject); + $mailer->setBody($body); + foreach ($rows as $row) { + $mailer->addBcc($row->email); + } + $mailer->send(); } - $mailer->send(); } begegnungChanged($begegnung, $begegnung_alt, $modus, $heim_team, $gast_team, $spiele); @@ -10277,14 +10279,16 @@ function adminBegegnungSpielplanBestaetigen(): void abortWithError($db->stderr(true)); } $rows = $db->loadObjectList(); - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($mailfrom, $fromname); - $mailer->setSubject($subject); - $mailer->setBody($body); - foreach ($rows as $row) { - $mailer->addBcc($row->email); + if(!empty($rows)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($mailfrom, $fromname); + $mailer->setSubject($subject); + $mailer->setBody($body); + foreach ($rows as $row) { + $mailer->addBcc($row->email); + } + $mailer->send(); } - $mailer->send(); if (isJson()) { begegnungSpielplan(); @@ -16364,14 +16368,16 @@ function termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten = false) $body = "

Das " . htmlentities_utf8($aktion[$terminaktion->typ]) . " des folgenden Termins wurde " . ($terminaktion->status == 0 ? ($ueberarbeiten ? "in überarbeiteter Form akzeptiert" : "akzeptiert") : "abgelehnt") . ".

"; } $body .= "\r\n" . $termin_beschreibung . $termin_moderationsstatus . "
\r\n"; - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($from, $fromName); - $mailer->setSubject($subject); - $mailer->isHtml(true); - $mailer->setBody($body); - foreach ($benachrichtigung_emails as $email) - $mailer->addBcc($email); - $mailer->send(); + if(!empty($benachrichtigung_emails)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($from, $fromName); + $mailer->setSubject($subject); + $mailer->isHtml(true); + $mailer->setBody($body); + foreach ($benachrichtigung_emails as $email) + $mailer->addBcc($email); + $mailer->send(); + } $from = $app->getCfg('mailfrom'); $fromName = $app->getCfg('fromname'); @@ -16386,24 +16392,28 @@ function termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten = false) $body = "

Termin " . htmlentities_utf8($aktion[$terminaktion->typ]) . " abgelehnt:

"; } $body .= "\r\n" . $termin_beschreibung . $termin_moderationsstatus . "
\r\n"; - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($from, $fromName); - $mailer->setSubject($subject); - $mailer->isHtml(true); - $mailer->setBody($body); - foreach ($benachrichtigung_moderatoren_informieren as $email) - $mailer->addBcc($email); - $mailer->send(); + if(!empty($benachrichtigung_moderatoren_informieren)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($from, $fromName); + $mailer->setSubject($subject); + $mailer->isHtml(true); + $mailer->setBody($body); + foreach ($benachrichtigung_moderatoren_informieren as $email) + $mailer->addBcc($email); + $mailer->send(); + } $body .= "

Bitte termin_aktion_id, -1) . "\">hier klicken, um den Termin zu moderieren.

\r\n"; - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($from, $fromName); - $mailer->setSubject($subject); - $mailer->isHtml(true); - $mailer->setBody($body); - foreach ($benachrichtigung_moderatoren_aendern as $email) - $mailer->addBcc($email); - $mailer->send(); + if(!empty($benachrichtigung_moderatoren_aendern)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($from, $fromName); + $mailer->setSubject($subject); + $mailer->isHtml(true); + $mailer->setBody($body); + foreach ($benachrichtigung_moderatoren_aendern as $email) + $mailer->addBcc($email); + $mailer->send(); + } return true; } diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 8af4d69..4e71fb0 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -4561,14 +4561,16 @@ function begegnungVerlegen(): void abortWithError($db->stderr(true)); } $rows = $db->loadObjectList(); - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($mailfrom, $fromname); - $mailer->setSubject($subject); - $mailer->setBody($body); - foreach ($rows as $row) { - $mailer->addBcc($row->email); + if(!empty($rows)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($mailfrom, $fromname); + $mailer->setSubject($subject); + $mailer->setBody($body); + foreach ($rows as $row) { + $mailer->addBcc($row->email); + } + $mailer->send(); } - $mailer->send(); begegnungVerlegenNotify($begegnung, $rows, $vorschlagendes_team_id, $heim_team, $gast_team); @@ -4714,14 +4716,16 @@ function begegnungVerlegen(): void abortWithError($db->stderr(true)); } $rows = $db->loadObjectList(); - $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); - $mailer->setSender($mailfrom, $fromname); - $mailer->setSubject($subject); - $mailer->setBody($body); - foreach ($rows as $row) { - $mailer->addBcc($row->email); + if(!empty($rows)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($mailfrom, $fromname); + $mailer->setSubject($subject); + $mailer->setBody($body); + foreach ($rows as $row) { + $mailer->addBcc($row->email); + } + $mailer->send(); } - $mailer->send(); if (isJson()) { JSON_sportsmanager::JSON([]);