diff --git a/Classes/Domain/Repository/MailRepository.php b/Classes/Domain/Repository/MailRepository.php index 894ba7560..f020a587c 100644 --- a/Classes/Domain/Repository/MailRepository.php +++ b/Classes/Domain/Repository/MailRepository.php @@ -361,10 +361,10 @@ public function getVariablesWithMarkersFromMail(Mail $mail, bool $htmlSpecialCha * Returns senderemail from a couple of arguments * * @param Mail $mail - * @param string $default + * @param string|array $default String as default or cObject array * @return string Sender Email */ - public function getSenderMailFromArguments(Mail $mail, string $default = ''): string + public function getSenderMailFromArguments(Mail $mail, $default = null): string { $email = ''; foreach ($mail->getAnswers() as $answer) { @@ -376,8 +376,17 @@ public function getSenderMailFromArguments(Mail $mail, string $default = ''): st break; } } + if (empty($email) && $default) { + if (!is_array($default)) { + $email = $default; + } else { + /** @var ContentObjectRenderer $contentObject */ + $contentObject = ObjectUtility::getObjectManager()->get(ContentObjectRenderer::class); + $email = $contentObject->cObjGetSingle($default[0][$default[1]], $default[0][$default[1] . '.']); + } + } if (empty($email)) { - $email = $this->getSenderMailFromDefault($default); + $email = $this->getSenderMailFromSystemDefaults(); } return $email; } @@ -492,19 +501,15 @@ public function initializeObject(): void /** * Get sender default email address * - * @param string $default * @return string */ - protected function getSenderMailFromDefault(string $default): string + protected function getSenderMailFromSystemDefaults(): string { $email = LocalizationUtility::translate('error_no_sender_email') . '@'; $email .= str_replace('www.', '', GeneralUtility::getIndpEnv('TYPO3_HOST_ONLY')); if (GeneralUtility::validEmail(ConfigurationUtility::getDefaultMailFromAddress())) { $email = ConfigurationUtility::getDefaultMailFromAddress(); } - if (!empty($default)) { - $email = $default; - } return $email; } diff --git a/Classes/Domain/Service/Mail/SendSenderMailPreflight.php b/Classes/Domain/Service/Mail/SendSenderMailPreflight.php index 8e9af6937..8bc840788 100644 --- a/Classes/Domain/Service/Mail/SendSenderMailPreflight.php +++ b/Classes/Domain/Service/Mail/SendSenderMailPreflight.php @@ -68,7 +68,10 @@ public function sendSenderMail(Mail $mail): void $senderService = ObjectUtility::getObjectManager()->get(SenderMailPropertiesService::class, $this->settings); $email = [ 'template' => 'Mail/SenderMail', - 'receiverEmail' => $this->mailRepository->getSenderMailFromArguments($mail), + 'receiverEmail' => $this->mailRepository->getSenderMailFromArguments( + $mail, + [$this->conf['sender.']['default.'], 'senderEmail'] + ), 'receiverName' => $this->mailRepository->getSenderNameFromArguments( $mail, [$this->conf['sender.']['default.'], 'senderName']