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; + } +}