Как переопределить финишер для sysext формы в TYPO3, чтобы добавить несколько адресов электронной почты? - PullRequest
0 голосов
/ 19 марта 2020

Я хочу переопределить финишер по умолчанию для расширения системы форм TYPO3, чтобы задать несколько адресов электронной почты для адреса получателя или добавить новое поле для большего числа получателей электронной почты.

проблема в том, что несколько адресов электронной почты в получателе в поле адреса выдается сообщение об ошибке

Адрес в почтовом ящике, указанный [first@email.de,second@email.de], не соответствует RF C 2822, 3.6.2.

Я знаю, я могу использовать электронную почту получателей и один cc, поэтому я получил 2 получателей электронной почты, но мне нужно больше;)

вот так:

mail1, mail2 , mail3,…

спасибо за помощь или ссылки, чтобы сделать это

1 Ответ

0 голосов
/ 19 марта 2020

Эта функция была реализована в TYPO3v10, где вы теперь можете легко установить нескольких получателей (Кому, Ответить, CC, B CC):

recipients:
  first@example.org: First Recipient
  second@example.org: Second Recipient

См. Функция : # 80420 - Разрешить нескольким получателям в финишере электронной почты для получения подробностей.

Поскольку эта функция не имеет обратного порта ни для TYPO3v8, ни для TYPO3v9. Для этих версий TYPO3 вы должны go с пользовательским финишером, который дублирует эту функцию.

В качестве альтернативы примените следующий пакет к пакету typo3/cms-form и предоставьте подходящее определение формы YAML:

--- Classes/Domain/Finishers/EmailFinisher.php.orig 2017-03-24 11:02:40.080329372 +0100
+++ Classes/Domain/Finishers/EmailFinisher.php  2017-03-24 11:03:46.116432657 +0100
@@ -108,10 +108,12 @@
             throw new FinisherException('The option "senderAddress" must be set for the EmailFinisher.', 1327060210);
         }

+        $recipients = is_string($recipientAddress) ? [$recipientAddress => $recipientName] : $recipientAddress;
+
         $mail = $this->objectManager->get(MailMessage::class);

         $mail->setFrom([$senderAddress => $senderName])
-            ->setTo([$recipientAddress => $recipientName])
+            ->setTo($recipients)
             ->setSubject($subject);

         if (!empty($replyToAddress)) {

Это позволит вам использовать массив для recipientAddress.

...