From 5466fe3e78460c4f12ffbce00b85565d0b2aac4b Mon Sep 17 00:00:00 2001 From: Sebastian Fischer Date: Mon, 25 May 2026 20:17:42 +0200 Subject: [PATCH] [TASK] Add getters to ReceiverMailSenderPropertiesService - add getReplyToEmail - add getReplyToName Both getters have individual events that can be used separate to the sender events. Both getters provide the same default values as the getSenderEmail / getSenderName unless the events ReceiverMailSenderPropertiesGetReplyToEmailEvent or ReceiverMailSenderPropertiesGetReplyToNameEvent are used to override them Resolves #1369 --- .../ReceiverMailSenderPropertiesService.php | 44 +++++++++++++++++++ .../Mail/SendDisclaimedMailPreflight.php | 4 +- ...ilSenderPropertiesGetReplyToEmailEvent.php | 29 ++++++++++++ ...ailSenderPropertiesGetReplyToNameEvent.php | 29 ++++++++++++ 4 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 Classes/Events/ReceiverMailSenderPropertiesGetReplyToEmailEvent.php create mode 100644 Classes/Events/ReceiverMailSenderPropertiesGetReplyToNameEvent.php diff --git a/Classes/Domain/Service/Mail/ReceiverMailSenderPropertiesService.php b/Classes/Domain/Service/Mail/ReceiverMailSenderPropertiesService.php index 281570761..440104821 100644 --- a/Classes/Domain/Service/Mail/ReceiverMailSenderPropertiesService.php +++ b/Classes/Domain/Service/Mail/ReceiverMailSenderPropertiesService.php @@ -5,6 +5,8 @@ use In2code\Powermail\Domain\Model\Mail; use In2code\Powermail\Domain\Repository\MailRepository; +use In2code\Powermail\Events\ReceiverMailSenderPropertiesGetReplyToEmailEvent; +use In2code\Powermail\Events\ReceiverMailSenderPropertiesGetReplyToNameEvent; use In2code\Powermail\Events\ReceiverMailSenderPropertiesGetSenderEmailEvent; use In2code\Powermail\Events\ReceiverMailSenderPropertiesGetSenderNameEvent; use In2code\Powermail\Utility\TypoScriptUtility; @@ -85,4 +87,46 @@ public function getSenderName(): string ); return $event->getSenderName(); } + + /** + * Get sender email from configuration in fields and params. If empty, take default from TypoScript + * + * @throws ExceptionExtbaseObject + */ + public function getReplyToEmail(): string + { + $defaultSenderEmail = TypoScriptUtility::overwriteValueFromTypoScript( + '', + $this->configuration['receiver.']['default.'], + 'senderEmail' + ); + $senderEmail = $this->mailRepository->getSenderMailFromArguments($this->mail, $defaultSenderEmail); + + /** @var ReceiverMailSenderPropertiesGetReplyToEmailEvent $event */ + $event = $this->eventDispatcher->dispatch( + new ReceiverMailSenderPropertiesGetReplyToEmailEvent($senderEmail, $this) + ); + return $event->getReplyToEmail(); + } + + /** + * Get sender name from configuration in fields and params. If empty, take default from TypoScript + * + * @throws ExceptionExtbaseObject + */ + public function getReplyToName(): string + { + $defaultSenderName = TypoScriptUtility::overwriteValueFromTypoScript( + '', + $this->configuration['receiver.']['default.'], + 'senderName' + ); + $senderName = $this->mailRepository->getSenderNameFromArguments($this->mail, $defaultSenderName); + + /** @var ReceiverMailSenderPropertiesGetReplyToNameEvent $event */ + $event = $this->eventDispatcher->dispatch( + new ReceiverMailSenderPropertiesGetReplyToNameEvent($senderName, $this) + ); + return $event->getReplyToName(); + } } diff --git a/Classes/Domain/Service/Mail/SendDisclaimedMailPreflight.php b/Classes/Domain/Service/Mail/SendDisclaimedMailPreflight.php index 96e86d551..221349c4f 100644 --- a/Classes/Domain/Service/Mail/SendDisclaimedMailPreflight.php +++ b/Classes/Domain/Service/Mail/SendDisclaimedMailPreflight.php @@ -52,8 +52,8 @@ public function sendMail(Mail $mail): void 'receiverName' => $receiverService->getReceiverName(), 'senderEmail' => $senderService->getSenderEmail(), 'senderName' => $senderService->getSenderName(), - 'replyToEmail' => $senderService->getSenderEmail(), - 'replyToName' => $senderService->getSenderName(), + 'replyToEmail' => $senderService->getReplyToEmail(), + 'replyToName' => $senderService->getReplyToName(), 'subject' => ObjectUtility::getContentObject()->cObjGetSingle( $this->conf['disclaimer.']['subject'], $this->conf['disclaimer.']['subject.'] diff --git a/Classes/Events/ReceiverMailSenderPropertiesGetReplyToEmailEvent.php b/Classes/Events/ReceiverMailSenderPropertiesGetReplyToEmailEvent.php new file mode 100644 index 000000000..05a9a6416 --- /dev/null +++ b/Classes/Events/ReceiverMailSenderPropertiesGetReplyToEmailEvent.php @@ -0,0 +1,29 @@ +senderEmail; + } + + public function setReplyToEmail(string $senderEmail): ReceiverMailSenderPropertiesGetReplyToEmailEvent + { + $this->senderEmail = $senderEmail; + return $this; + } + + public function getService(): ReceiverMailSenderPropertiesService + { + return $this->service; + } +} diff --git a/Classes/Events/ReceiverMailSenderPropertiesGetReplyToNameEvent.php b/Classes/Events/ReceiverMailSenderPropertiesGetReplyToNameEvent.php new file mode 100644 index 000000000..1d80f1b62 --- /dev/null +++ b/Classes/Events/ReceiverMailSenderPropertiesGetReplyToNameEvent.php @@ -0,0 +1,29 @@ +senderName; + } + + public function setReplyToName(string $senderName): ReceiverMailSenderPropertiesGetReplyToNameEvent + { + $this->senderName = $senderName; + return $this; + } + + public function getService(): ReceiverMailSenderPropertiesService + { + return $this->service; + } +}