diff --git a/bundle/Helper/MailHelper.php b/bundle/Helper/MailHelper.php index 6cd3bf8c..0fc47871 100644 --- a/bundle/Helper/MailHelper.php +++ b/bundle/Helper/MailHelper.php @@ -68,6 +68,47 @@ public function sendMail(array|string $receivers, string $subject, string $templ $this->mailer->send($email); } + /** + * Sends a group mail to users in bcc. + * + * Sender and recipient are set to sender + * + * Sender can be: + * a string: info@netgen.io + * an array: array( 'info@netgen.io' => 'Netgen Site' ) + * + * Bcc can be: + * a string: info@netgen.io + * or: + * array( 'info@netgen.io' => 'Netgen Site' ) or + * array( 'info@netgen.io', 'example@netgen.io' ) or + * array( 'info@netgen.io' => 'Netgen Site', 'example@netgen.io' => 'Example' ) + * + * @param string|string[] $bcc + * @param array $parameters + * @param string|string[]|null $sender + */ + public function sendGroupMail(array|string $bcc, string $subject, string $template, array $parameters = [], array|string|null $sender = null): void + { + try { + $senderAddress = $this->createSenderAddress($sender); + } catch (InvalidArgumentException $e) { + $this->logger->error($e->getMessage()); + + return; + } + + $email = (new Email()) + ->from($senderAddress) + ->sender($senderAddress) + ->to($senderAddress) + ->bcc(...$this->createReceiverAddresses($bcc)) + ->subject($this->translator->trans($subject, [], 'ngsite_mail')) + ->html($this->twig->render($template, $parameters)); + + $this->mailer->send($email); + } + /** * Creates a sender address from provided value. * If sender is not provided (if it is null), it attempts to get the sender from the parameters: