From ec10af436ab92017a48a39d1f3bbdbe92c0d446b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Jacob?= <bjoern.jacob@tritum.de>
Date: Thu, 23 Jun 2022 22:19:30 +0200
Subject: [PATCH] [DOCS] Update finisher documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The whole documentation about finishers has not
been touched since ages. A lot of information are
outdated. This patch fixes the mess.

Also improve a language label to clarify the usage of
the title field within the finishers "EmailToReceiver"
and "EmailToSender".

Resolves: #96048
Releases: main, 11.5
Change-Id: I3004194c37203993582e7f4687523ad766d3235d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/74978
Tested-by: core-ci <typo3@b13.com>
Tested-by: Björn Jacob <bjoern.jacob@tritum.de>
Tested-by: Nikita Hovratov <nikita.h@live.de>
Reviewed-by: Björn Jacob <bjoern.jacob@tritum.de>
Reviewed-by: Nikita Hovratov <nikita.h@live.de>
---
 .../Documentation/D/FinisherOptions/Index.rst | 189 +++++-----
 .../D/FrontendRendering/Index.rst             |   6 +-
 .../FormConfigurationFormDefinition/Index.rst |   5 +-
 .../I/Concepts/FormEditor/Index.rst           |  40 ++-
 .../I/Concepts/FormPlugin/Index.rst           |   2 +-
 .../I/Concepts/FrontendRendering/Index.rst    |   4 +-
 .../I/Concepts/Variants/Index.rst             |   7 +-
 .../finishers/EmailToReceiver.rst             | 312 ++++++++--------
 .../finishers/EmailToSender.rst               | 335 +++++++++---------
 .../formElements/formElementTypes/Form.rst    |  61 ++--
 .../formElementTypes/Form/formEditor.rst      | 310 ++++++++++------
 .../propertyCollections/finishers/10.rst      | 149 +++++---
 .../finishers/10/editors/1050.rst             |  36 ++
 .../finishers/10/editors/1100.rst             |   4 +-
 .../10/editors/{1000.rst => 1200.rst}         |  21 +-
 .../10/editors/{400.rst => 1400.rst}          |  16 +-
 .../finishers/10/editors/200.rst              |   1 +
 .../finishers/10/editors/300.rst              |  39 --
 .../finishers/10/editors/350.rst              |  49 +++
 .../finishers/10/editors/500.rst              |   1 +
 .../finishers/10/editors/600.rst              |   1 +
 .../finishers/10/editors/700.rst              |  39 --
 .../finishers/10/editors/750.rst              |  46 +++
 .../finishers/10/editors/800.rst              |  39 --
 .../finishers/10/editors/850.rst              |  46 +++
 .../finishers/10/editors/900.rst              |  39 --
 .../finishers/10/editors/950.rst              |  46 +++
 .../propertyCollections/finishers/20.rst      | 140 +++++---
 .../finishers/20/editors/1000.rst             |  42 ---
 .../finishers/20/editors/1050.rst             |  36 ++
 .../finishers/20/editors/1100.rst             |   4 +-
 .../20/editors/{400.rst => 1400.rst}          |  21 +-
 .../finishers/20/editors/200.rst              |   2 +
 .../finishers/20/editors/300.rst              |  39 --
 .../finishers/20/editors/350.rst              |  49 +++
 .../finishers/20/editors/500.rst              |   1 +
 .../finishers/20/editors/600.rst              |   1 +
 .../finishers/20/editors/700.rst              |  39 --
 .../finishers/20/editors/750.rst              |  46 +++
 .../finishers/20/editors/800.rst              |  39 --
 .../finishers/20/editors/850.rst              |  46 +++
 .../finishers/20/editors/900.rst              |  39 --
 .../finishers/20/editors/950.rst              |  46 +++
 .../finishers/30/editors/200.rst              |   1 +
 .../propertyCollections/finishers/50.rst      |  18 +
 .../finishers/50/editors/200.rst              |  42 +++
 .../finishers/50/editors/300.rst              |  36 ++
 47 files changed, 1459 insertions(+), 1071 deletions(-)
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1050.rst
 rename typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/{1000.rst => 1200.rst} (68%)
 rename typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/{400.rst => 1400.rst} (72%)
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/300.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/350.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/700.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/750.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/800.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/850.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/900.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/950.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1000.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1050.rst
 rename typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/{400.rst => 1400.rst} (68%)
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/300.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/350.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/700.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/750.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/800.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/850.rst
 delete mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/900.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/950.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/200.rst
 create mode 100644 typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/300.rst

diff --git a/typo3/sysext/form/Documentation/D/FinisherOptions/Index.rst b/typo3/sysext/form/Documentation/D/FinisherOptions/Index.rst
index 6d2f89a0313a..d30f65147c5b 100644
--- a/typo3/sysext/form/Documentation/D/FinisherOptions/Index.rst
+++ b/typo3/sysext/form/Documentation/D/FinisherOptions/Index.rst
@@ -50,9 +50,9 @@ closure
 Confirmation finisher
 ---------------------
 
-A simple finisher that outputs a given text.
+A simple finisher that outputs a given text or a content element, respectively.
 
-Usage within form definition
+Usage within form definition for the case, you want to use a given text.
 
 .. code-block:: yaml
 
@@ -83,6 +83,37 @@ or create manually (not preferred)::
    $formDefinition->addFinisher($confirmationFinisher);
 
 
+Usage within form definition for the case, you want to output a content element.
+
+.. code-block:: yaml
+
+   identifier: example-form
+   label: 'example'
+   type: Form
+
+   finishers:
+     -
+       identifier: Confirmation
+       options:
+         contentElement: 9
+   ...
+
+
+Usage through code::
+
+   $formDefinition->createFinisher('Confirmation', [
+       'contentElement' => 9,
+   ]);
+
+or create manually (not preferred)::
+
+   $confirmationFinisher = GeneralUtility::makeInstance(ConfirmationFinisher::class);
+   $confirmationFinisher->setOptions([
+       'contentElement' => 9,
+   ]);
+   $formDefinition->addFinisher($confirmationFinisher);
+
+
 .. _apireference-finisheroptions-confirmationfinisher-options:
 
 Options
@@ -112,7 +143,7 @@ This finisher remove the currently submited files.
 Use this finisher e.g after the email finisher if you don't want to keep the files online.
 
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
@@ -144,7 +175,7 @@ Email finisher
 This finisher sends an email to one recipient.
 EXT:form uses 2 EmailFinisher declarations with the identifiers ``EmailToReceiver`` and ``EmailToSender``.
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
@@ -157,8 +188,9 @@ Usage within form definition
        identifier: EmailToReceiver
        options:
          subject: 'Your message'
-         recipientAddress: your.company@example.com
-         recipientName: 'Your Company name'
+         recipients:
+           your.company@example.com: 'Your Company name'
+           ceo@example.com: 'CEO'
          senderAddress: 'form@example.com'
          senderName: 'form submitter'
    ...
@@ -168,8 +200,10 @@ Usage through code::
 
    $formDefinition->createFinisher('EmailToReceiver', [
        'subject' => 'Your message',
-       'recipientAddress' => 'your.company@example.com',
-       'recipientName' => 'Your Company name',
+       'recipients' => [
+           'your.company@example.com' => 'Your Company name',
+           'ceo@example.com' => 'CEO'
+       ],
        'senderAddress' => 'form@example.com',
        'senderName' => 'form submitter',
    ]);
@@ -179,8 +213,10 @@ or create manually (not preferred)::
    $emailFinisher = GeneralUtility::makeInstance(EmailFinisher::class);
    $emailFinisher->setOptions([
        'subject' => 'Your message',
-       'recipientAddress' => 'your.company@example.com',
-       'recipientName' => 'Your Company name',
+       'recipients' => [
+           'your.company@example.com' => 'Your Company name',
+           'ceo@example.com' => 'CEO'
+       ],
        'senderAddress' => 'form@example.com',
        'senderName' => 'form submitter',
    ]);
@@ -207,16 +243,16 @@ subject
       undefined
 
 :aspect:`Description`
-      Subject of the email
+      Subject of the email.
 
 
-.. _apireference-finisheroptions-emailfinisher-options-recipientaddress:
+.. _apireference-finisheroptions-emailfinisher-options-recipients:
 
-recipientAddress
-++++++++++++++++
+recipients
+++++++++++
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Mandatory`
       Yes
@@ -225,25 +261,7 @@ recipientAddress
       undefined
 
 :aspect:`Description`
-      Email address of the recipient (To)
-
-
-.. _apireference-finisheroptions-emailfinisher-options-recipientname:
-
-recipientName
-+++++++++++++
-
-:aspect:`Data type`
-      string
-
-:aspect:`Mandatory`
-      No
-
-:aspect:`Default value`
-      empty string
-
-:aspect:`Description`
-      Human-readable name of the recipient
+      Email addresses and names of the recipients (To).
 
 
 .. _apireference-finisheroptions-emailfinisher-options-senderaddress:
@@ -261,7 +279,7 @@ senderAddress
       undefined
 
 :aspect:`Description`
-      Email address of the sender/ visitor (From)
+      Email address of the sender/ visitor (From).
 
 
 .. _apireference-finisheroptions-emailfinisher-options-sendername:
@@ -279,16 +297,16 @@ senderName
       empty string
 
 :aspect:`Description`
-      Human-readable name of the sender
+      Human-readable name of the sender.
 
 
-.. _apireference-finisheroptions-emailfinisher-options-replytoaddress:
+.. _apireference-finisheroptions-emailfinisher-options-replytorecipients:
 
-replyToAddress
-++++++++++++++
+replyToRecipients
++++++++++++++++++
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Mandatory`
       No
@@ -297,20 +315,16 @@ replyToAddress
       undefined
 
 :aspect:`Description`
-      Email address of to be used as reply-to email (use multiple addresses with an array)
+      Email addresses of to be used as reply-to emails.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple reply-to addresses (use multiple addresses with an array)
+.. _apireference-finisheroptions-emailfinisher-options-carboncopyrecipients:
 
-
-.. _apireference-finisheroptions-emailfinisher-options-carboncopyaddress:
-
-carbonCopyAddress
-+++++++++++++++++
+carbonCopyRecipients
+++++++++++++++++++++
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Mandatory`
       No
@@ -319,20 +333,16 @@ carbonCopyAddress
       undefined
 
 :aspect:`Description`
-      Email address of the copy recipient (use multiple addresses with an array)
-
-.. note::
+      Email addresses of the copy recipient.
 
-   For the moment, the ``form editor`` cannot deal with multiple copy recipient addresses (use multiple addresses with an array)
 
+.. _apireference-finisheroptions-emailfinisher-options-blindcarbonCopyrecipients:
 
-.. _apireference-finisheroptions-emailfinisher-options-blindcarboncopyaddress:
-
-blindCarbonCopyAddress
-++++++++++++++++++++++
+blindCarbonCopyRecipients
++++++++++++++++++++++++++
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Mandatory`
       No
@@ -341,32 +351,27 @@ blindCarbonCopyAddress
       undefined
 
 :aspect:`Description`
-      Email address of the blind copy recipient (use multiple addresses with an array)
+      Email address of the blind copy recipient.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple blind copy recipient addresses (use multiple addresses with an array)
+.. _apireference-finisheroptions-emailfinisher-options-addhtmlpart:
 
-
-.. _apireference-finisheroptions-emailfinisher-options-format:
-
-format
-++++++
+addHtmlPart
++++++++++++
 
 :aspect:`Data type`
-      string
+      bool
 
 :aspect:`Mandatory`
       No
 
 :aspect:`Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)`
-      html
-
-:aspect:`possible values`
-      html/ plaintext
+      true
 
 :aspect:`Description`
-      The format of the email. By default mails are sent as HTML.
+      If set, mails will contain a plaintext and HTML part, otherwise only a
+      plaintext part. That way, it can be used to disable HTML and enforce
+      plaintext-only mails.
 
 
 .. _apireference-finisheroptions-emailfinisher-options-attachuploads:
@@ -387,13 +392,13 @@ attachUploads
       If set, all uploaded items are attached to the email.
 
 
-.. _apireference-finisheroptions-emailfinisher-options-translation-translationfiles:
+.. _apireference-finisheroptions-emailfinisher-options-translation-title:
 
-translation.translationFiles
-++++++++++++++++++++++++++++
+title
++++++
 
 :aspect:`Data type`
-      string/ array
+      string
 
 :aspect:`Mandatory`
       No
@@ -402,9 +407,7 @@ translation.translationFiles
       undefined
 
 :aspect:`Description`
-      If set, this translation file(s) will be used for finisher option translations.
-      If not set, the translation file(s) from the 'Form' element will be used.
-      Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
+      The title, being shown in the Email.
 
 
 .. _apireference-finisheroptions-emailfinisher-options-translation-language:
@@ -427,6 +430,26 @@ translation.language
       Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
 
 
+.. _apireference-finisheroptions-emailfinisher-options-translation-translationfiles:
+
+translation.translationFiles
+++++++++++++++++++++++++++++
+
+:aspect:`Data type`
+      array
+
+:aspect:`Mandatory`
+      No
+
+:aspect:`Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)`
+      undefined
+
+:aspect:`Description`
+      If set, this translation file(s) will be used for finisher option translations.
+      If not set, the translation file(s) from the 'Form' element will be used.
+      Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
+
+
 .. _apireference-finisheroptions-emailfinisher-options-layoutrootpaths:
 
 layoutRootPaths
@@ -508,7 +531,7 @@ FlashMessage finisher
 
 A simple finisher that adds a message to the FlashMessageContainer.
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
@@ -649,7 +672,7 @@ Redirect finisher
 
 A simple finisher that redirects to another page.
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
@@ -768,7 +791,7 @@ SaveToDatabase finisher
 This finisher saves the data from a submitted form into a database table.
 
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
@@ -850,7 +873,7 @@ or create manually (not preferred)::
 
 You can write options as an array to perform multiple database operations.
 
-Usage within form definition
+Usage within form definition.
 
 .. code-block:: yaml
 
diff --git a/typo3/sysext/form/Documentation/D/FrontendRendering/Index.rst b/typo3/sysext/form/Documentation/D/FrontendRendering/Index.rst
index 13638f8738e1..4e1461ced231 100644
--- a/typo3/sysext/form/Documentation/D/FrontendRendering/Index.rst
+++ b/typo3/sysext/form/Documentation/D/FrontendRendering/Index.rst
@@ -263,7 +263,9 @@ Implement a ``FormFactory`` and build the form::
 
            $form->createFinisher('EmailToSender', [
                'subject' => 'Hello',
-               'recipientAddress' => 'foo@example.com',
+               'recipients' => [
+                   'your.company@example.com' => 'Your Company name'
+               ],
                'senderAddress' => 'bar@example.com',
            ]);
 
@@ -1665,4 +1667,4 @@ Use the hook
     */
    public function beforeRendering(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface $renderable)
    {
-   }
\ No newline at end of file
+   }
diff --git a/typo3/sysext/form/Documentation/I/Concepts/FormConfigurationFormDefinition/Index.rst b/typo3/sysext/form/Documentation/I/Concepts/FormConfigurationFormDefinition/Index.rst
index 94843994ff05..5847859a1575 100644
--- a/typo3/sysext/form/Documentation/I/Concepts/FormConfigurationFormDefinition/Index.rst
+++ b/typo3/sysext/form/Documentation/I/Concepts/FormConfigurationFormDefinition/Index.rst
@@ -45,8 +45,9 @@ Example form definition
        identifier: EmailToReceiver
        options:
          subject: 'Your message'
-         recipientAddress: 'your.company@example.com'
-         recipientName: 'Your company name'
+         recipients:
+           your.company@example.com: 'Your Company name'
+           ceo@example.com: 'CEO'
          senderAddress: '{email}'
          senderName: '{name}'
 
diff --git a/typo3/sysext/form/Documentation/I/Concepts/FormEditor/Index.rst b/typo3/sysext/form/Documentation/I/Concepts/FormEditor/Index.rst
index 0196e0772475..fd95118e3364 100644
--- a/typo3/sysext/form/Documentation/I/Concepts/FormEditor/Index.rst
+++ b/typo3/sysext/form/Documentation/I/Concepts/FormEditor/Index.rst
@@ -491,17 +491,22 @@ you a ``form definition`` and the debug output of the corresponding
        identifier: EmailToReceiver
        options:
          subject: 'Your message: {subject}'
-         recipientAddress: your.company@example.com
-         recipientName: 'Your Company name'
+         recipients:
+           your.company@example.com: 'Your Company name'
+           ceo@example.com: 'CEO'
          senderAddress: '{email}'
          senderName: '{name}'
-         replyToAddress: ''
-         carbonCopyAddress: ''
-         blindCarbonCopyAddress: ''
-         format: html
+         replyToRecipients:
+           replyTo.company@example.com: 'Your Company name'
+         carbonCopyRecipients:
+           cc.company@example.com: 'Your Company name'
+         blindCarbonCopyRecipients:
+           bcc.company@example.com: 'Your Company name'
+         addHtmlPart: true
          attachUploads: 'true'
          translation:
            language: ''
+         title: ''
    renderables:
      -
        identifier: page-1
@@ -534,18 +539,27 @@ you a ``form definition`` and the debug output of the corresponding
          "identifier": "EmailToReceiver",
          "options": {
            "subject": "Your message: {subject}",
-           "recipientAddress": "your.company@example.com",
-           "recipientName": "Your Company name",
+           "recipients": {
+             "your.company@example.com": "Your Company name",
+             "ceo@example.com": "CEO"
+           },
            "senderAddress": "{email}",
            "senderName": "{name}",
-           "replyToAddress": "",
-           "carbonCopyAddress": "",
-           "blindCarbonCopyAddress": "",
-           "format": "html",
+           "replyToRecipients": {
+             "replyTo.company@example.com": "Your Company name"
+           },
+           "carbonCopyRecipients": {
+             "cc.company@example.com": "Your Company name"
+           },
+           "blindCarbonCopyRecipients": {
+             "bcc.company@example.com": "Your Company name"
+           },
+           "addHtmlPart": true,
            "attachUploads": true,
            "translation": {
              "language": ""
-           }
+           },
+           "title": ""
          }
        }
      ],
diff --git a/typo3/sysext/form/Documentation/I/Concepts/FormPlugin/Index.rst b/typo3/sysext/form/Documentation/I/Concepts/FormPlugin/Index.rst
index 4a28765fddf7..cd66ba74fdf4 100644
--- a/typo3/sysext/form/Documentation/I/Concepts/FormPlugin/Index.rst
+++ b/typo3/sysext/form/Documentation/I/Concepts/FormPlugin/Index.rst
@@ -54,7 +54,7 @@ by this.
                    elements:
                      senderAddress: ~
                      senderName: ~
-                     replyToAddress: ~
+                     replyToRecipients: ~
                      translation: ~
 
 
diff --git a/typo3/sysext/form/Documentation/I/Concepts/FrontendRendering/Index.rst b/typo3/sysext/form/Documentation/I/Concepts/FrontendRendering/Index.rst
index 869fa65ef02b..a5202e0be85a 100644
--- a/typo3/sysext/form/Documentation/I/Concepts/FrontendRendering/Index.rst
+++ b/typo3/sysext/form/Documentation/I/Concepts/FrontendRendering/Index.rst
@@ -496,7 +496,9 @@ The same mechanism (YAML, YAML + TypoScript) works for finisher options:
        identifier: EmailToReceiver
        options:
          subject: My %s subject
-         recipientAddress: foo@example.org
+         recipients:
+           your.company@example.com: 'Your Company name'
+           ceo@example.com: 'CEO'
          senderAddress: bar@example.org
          translation:
            translationFiles:
diff --git a/typo3/sysext/form/Documentation/I/Concepts/Variants/Index.rst b/typo3/sysext/form/Documentation/I/Concepts/Variants/Index.rst
index b2e817e7e085..e5972004734b 100644
--- a/typo3/sysext/form/Documentation/I/Concepts/Variants/Index.rst
+++ b/typo3/sysext/form/Documentation/I/Concepts/Variants/Index.rst
@@ -400,15 +400,16 @@ the finisher is skipped.
        identifier: EmailToReceiver
        options:
          subject: Yes, I am ready
-         recipientAddress: tritum@example.org
-         recipientName: TRITUM
+         recipients:
+           your.company@example.com: 'Your Company name'
          senderAddress: tritum@example.org
          senderName: tritum@example.org
      -
        identifier: EmailToSender
        options:
          subject: This is a copy of the form data
-         recipientAddress: '{email-address}'
+         recipients:
+           {email-address}: '{name}'
          senderAddress: tritum@example.org
          senderName: tritum@example.org
          renderingOptions:
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToReceiver.rst b/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToReceiver.rst
index 7de3c5255538..0317118fca7c 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToReceiver.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToReceiver.rst
@@ -74,16 +74,16 @@ options.subject
       Subject of the email.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.recipientaddress:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.recipients:
 
-options.recipientAddress
-------------------------
+options.recipients
+------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.recipientAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.recipients
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -99,35 +99,7 @@ options.recipientAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the recipient (To).
-
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.recipientname:
-
-options.recipientName
----------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.recipientName
-
-:aspect:`Data type`
-      string
-
-:aspect:`Needed by`
-      Frontend
-
-:aspect:`Mandatory`
-      No
-
-:aspect:`Default value`
-      empty string
-
-:aspect:`Good to know`
-      - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
-      - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
-
-:aspect:`Description`
-      Human-readable name of the recipient.
+      Email addresses and names of the recipients (To).
 
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.senderaddress:
@@ -186,16 +158,16 @@ options.senderName
       Human-readable name of the sender.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.replytoaddress:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.replytorecipients:
 
-options.replyToAddress
-----------------------
+options.replyToRecipients
+-------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.replyToAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.replyToRecipients
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -211,23 +183,19 @@ options.replyToAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of to be used as reply-to email (use multiple addresses with an array).
+      Email addresses of to be used as reply-to emails.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple reply-to addresses (use multiple addresses with an array)
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.carboncopyrecipients:
 
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.carboncopyaddress:
-
-options.carbonCopyAddress
--------------------------
+options.carbonCopyRecipients
+----------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.carbonCopyAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.carbonCopyRecipients
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -243,23 +211,19 @@ options.carbonCopyAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the copy recipient (use multiple addresses with an array)
-
-.. note::
+      Email addresses of the copy recipient.
 
-   For the moment, the ``form editor`` cannot deal with multiple copy recipient addresses (use multiple addresses with an array)
 
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.blindcarbonCopyrecipients:
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.blindcarboncopyaddress:
-
-options.blindCarbonCopyAddress
-------------------------------
+options.blindCarbonCopyRecipients
+---------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.blindCarbonCopyAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.blindCarbonCopyRecipients
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -275,23 +239,19 @@ options.blindCarbonCopyAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the blind copy recipient (use multiple addresses with an array)
+      Email address of the blind copy recipient.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple blind copy recipient addresses (use multiple addresses with an array)
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.addhtmlpart:
 
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.format:
-
-options.format
---------------
+options.addHtmlPart
+-------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.format
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.addHtmlPart
 
 :aspect:`Data type`
-      string
+      bool
 
 :aspect:`Needed by`
       Frontend
@@ -300,17 +260,16 @@ options.format
       No
 
 :aspect:`Default value`
-      html
-
-:aspect:`Possible values`
-      html/ plaintext
+      true
 
 :aspect:`Good to know`
       - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      The format of the email. By default mails are sent as HTML.
+      If set, mails will contain a plaintext and HTML part, otherwise only a
+      plaintext part. That way, it can be used to disable HTML and enforce
+      plaintext-only mails.
 
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.attachuploads:
@@ -341,6 +300,36 @@ options.attachUploads
       If set, all uploaded items are attached to the email.
 
 
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.title:
+
+options.title
+-------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.title
+
+:aspect:`Data type`
+      string
+
+:aspect:`Needed by`
+      Frontend
+
+:aspect:`Mandatory`
+      No
+
+:aspect:`Default value`
+      undefined
+
+:aspect:`Good to know`
+      - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
+      - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
+
+:aspect:`Description`
+      The title, being shown in the email. The templates are based onFluidEmail.
+      The template renders the title field in the header section right above the
+      email body. Do not confuse this field with the subject of the email.
+
+
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.options.translation.language:
 
 options.translation.language
@@ -381,7 +370,7 @@ options.translation.translationFiles
       TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.translation.translationFiles
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -544,20 +533,6 @@ formeditor.iconIdentifier
            formEditor:
              iconIdentifier: form-finisher
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
-             predefinedDefaults:
-               options:
-                 subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
-                 senderAddress: ''
-                 senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
-                 attachUploads: true
-                 translation:
-                   language: ''
 
 .. :aspect:`Good to know`
       ToDo
@@ -592,20 +567,6 @@ formeditor.label
            formEditor:
              iconIdentifier: form-finisher
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
-             predefinedDefaults:
-               options:
-                 subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
-                 senderAddress: ''
-                 senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
-                 attachUploads: true
-                 translation:
-                   language: ''
 
 :aspect:`Good to know`
       - :ref:`"Translate form editor settings"<concepts-formeditor-translation-formeditor>`
@@ -643,17 +604,17 @@ formeditor.predefinedDefaults
              predefinedDefaults:
                options:
                  subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
+                 recipients: {  }
                  senderAddress: ''
                  senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
+                 replyToRecipients: {  }
+                 carbonCopyRecipients: {  }
+                 blindCarbonCopyRecipients: {  }
+                 addHtmlPart: true
                  attachUploads: true
                  translation:
-                   language: ''
+                   language: 'default'
+                 title: ''
 
 .. :aspect:`Good to know`
       ToDo
@@ -695,6 +656,7 @@ FormEngine.label
       .. include:: ../properties/formEngine/label.rst
 
 
+@ToDo
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtoreceiver.formengine.elements:
 
 FormEngine.elements
@@ -723,17 +685,31 @@ FormEngine.elements
              elements:
                subject:
                  label: tt_content.finishersDefinition.EmailToReceiver.subject.label
-                 config:
-                   type: input
-               recipientAddress:
-                 label: tt_content.finishersDefinition.EmailToReceiver.recipientAddress.label
                  config:
                    type: input
                    eval: required
-               recipientName:
-                 label: tt_content.finishersDefinition.EmailToReceiver.recipientName.label
-                 config:
-                   type: input
+               recipients:
+                 title: tt_content.finishersDefinition.EmailToReceiver.recipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
                senderAddress:
                  label: tt_content.finishersDefinition.EmailToReceiver.senderAddress.label
                  config:
@@ -743,33 +719,77 @@ FormEngine.elements
                  label: tt_content.finishersDefinition.EmailToReceiver.senderName.label
                  config:
                    type: input
-               replyToAddress:
-                 label: tt_content.finishersDefinition.EmailToReceiver.replyToAddress.label
-                 config:
-                   type: input
-               carbonCopyAddress:
-                 label: tt_content.finishersDefinition.EmailToReceiver.carbonCopyAddress.label
+               replyToRecipients:
+                 title: tt_content.finishersDefinition.EmailToReceiver.replyToRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               carbonCopyRecipients:
+                 title: tt_content.finishersDefinition.EmailToReceiver.carbonCopyRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               blindCarbonCopyRecipients:
+                 title: tt_content.finishersDefinition.EmailToReceiver.blindCarbonCopyRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               addHtmlPart:
+                 label: tt_content.finishersDefinition.EmailToReceiver.addHtmlPart.label
                  config:
-                   type: input
-               blindCarbonCopyAddress:
-                 label: tt_content.finishersDefinition.EmailToReceiver.blindCarbonCopyAddress.label
-                 config:
-                   type: input
-               format:
-                 label: tt_content.finishersDefinition.EmailToReceiver.format.label
-                 config:
-                   type: select
-                   renderType: selectSingle
-                   minitems: 1
-                   maxitems: 1
-                   size: 1
-                   items:
-                     10:
-                       - tt_content.finishersDefinition.EmailToSender.format.1
-                       - html
-                     20:
-                       - tt_content.finishersDefinition.EmailToSender.format.2
-                       - plaintext
+                   type: check
+                   default: 1
                translation:
                  language:
                    label: tt_content.finishersDefinition.EmailToReceiver.language.label
@@ -783,6 +803,10 @@ FormEngine.elements
                        10:
                          - tt_content.finishersDefinition.EmailToReceiver.language.1
                          - default
+               title:
+                 label: tt_content.finishersDefinition.EmailToReceiver.title.label
+                 config:
+                   type: input
 
 :aspect:`Good to know`
       - :ref:`"Translate form plugin settings"<concepts-formplugin-translation-formengine>`
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToSender.rst b/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToSender.rst
index 10379df5307c..7f6dea572082 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToSender.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/finishersDefinition/finishers/EmailToSender.rst
@@ -74,16 +74,16 @@ options.subject
       Subject of the email.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.recipientaddress:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.recipients:
 
-options.recipientAddress
-------------------------
+options.recipients
+------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.recipientAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.recipients
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -99,35 +99,7 @@ options.recipientAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the recipient (To).
-
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.recipientname:
-
-options.recipientName
----------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.recipientName
-
-:aspect:`Data type`
-      string
-
-:aspect:`Needed by`
-      Frontend
-
-:aspect:`Mandatory`
-      No
-
-:aspect:`Default value`
-      empty string
-
-:aspect:`Good to know`
-      - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
-      - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
-
-:aspect:`Description`
-      Human-readable name of the recipient.
+      Email addresses and names of the recipients (To).
 
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.senderaddress:
@@ -186,16 +158,16 @@ options.senderName
       Human-readable name of the sender.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.replytoaddress:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.replytorecipients:
 
-options.replyToAddress
-----------------------
+options.replyToRecipients
+-------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.replyToAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.replyToRecipients
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -211,23 +183,19 @@ options.replyToAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of to be used as reply-to email (use multiple addresses with an array).
-
-.. note::
-
-   For the moment, the ``form editor`` cannot deal with multiple reply-to addresses (use multiple addresses with an array)
+      Email addresses of to be used as reply-to emails.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.carboncopyaddress:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.carboncopyrecipients:
 
-options.carbonCopyAddress
--------------------------
+options.carbonCopyRecipients
+----------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.carbonCopyAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.carbonCopyRecipients
 
 :aspect:`Data type`
-      string/ array
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -243,23 +211,19 @@ options.carbonCopyAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the copy recipient (use multiple addresses with an array)
+      Email addresses of the copy recipient.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple copy recipient addresses (use multiple addresses with an array)
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.blindcarboncopyrecipients:
 
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.blindcarboncopyaddress:
-
-options.blindCarbonCopyAddress
-------------------------------
+options.blindCarbonCopyRecipients
+---------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.blindCarbonCopyAddress
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.blindCarbonCopyRecipients
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Needed by`
       Frontend
@@ -275,23 +239,19 @@ options.blindCarbonCopyAddress
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      Email address of the blind copy recipient (use multiple addresses with an array)
+      Email address of the blind copy recipient.
 
-.. note::
 
-   For the moment, the ``form editor`` cannot deal with multiple blind copy recipient addresses (use multiple addresses with an array)
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.addhtmlpart:
 
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.format:
-
-options.format
---------------
+options.addHtmlPart
+-------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.format
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.addHtmlPart
 
 :aspect:`Data type`
-      string
+      bool
 
 :aspect:`Needed by`
       Frontend
@@ -300,17 +260,16 @@ options.format
       No
 
 :aspect:`Default value`
-      html
-
-:aspect:`Possible values`
-      html/ plaintext
+      true
 
 :aspect:`Good to know`
       - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
 
 :aspect:`Description`
-      The format of the email. By default mails are sent as HTML.
+      If set, mails will contain a plaintext and HTML part, otherwise only a
+      plaintext part. That way, it can be used to disable HTML and enforce
+      plaintext-only mails.
 
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.attachuploads:
@@ -341,13 +300,13 @@ options.attachUploads
       If set, all uploaded items are attached to the email.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.translation.language:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.title:
 
-options.translation.language
-----------------------------
+options.title
+-------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.language
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.title
 
 :aspect:`Data type`
       string
@@ -364,24 +323,23 @@ options.translation.language
 :aspect:`Good to know`
       - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
       - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
-      - :ref:`"Translate finisher options"<concepts-frontendrendering-translation-finishers>`
 
 :aspect:`Description`
-      If not set, the finisher options are translated depending on the current frontend language (if translations exists).
-      This option allows you to force translations for a given sys_language isocode, e.g 'dk' or 'de'.
-      Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
+      The title, being shown in the email. The templates are based onFluidEmail.
+      The template renders the title field in the header section right above the
+      email body. Do not confuse this field with the subject of the email.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.translation.translationfiles:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.translation.language:
 
-options.translation.translationFiles
-------------------------------------
+options.translation.language
+----------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.translationFiles
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.language
 
 :aspect:`Data type`
-      string/ array
+      string
 
 :aspect:`Needed by`
       Frontend
@@ -398,43 +356,40 @@ options.translation.translationFiles
       - :ref:`"Translate finisher options"<concepts-frontendrendering-translation-finishers>`
 
 :aspect:`Description`
-      If set, this translation file(s) will be used for finisher option translations.
-      If not set, the translation file(s) from the 'Form' element will be used.
+      If not set, the finisher options are translated depending on the current frontend language (if translations exists).
+      This option allows you to force translations for a given sys_language isocode, e.g 'dk' or 'de'.
       Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
 
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.templatepathandfilename:
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.translation.translationfiles:
 
-options.templatePathAndFilename
--------------------------------
+options.translation.translationFiles
+------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.templatePathAndFilename
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.translationFiles
 
 :aspect:`Data type`
-      string
+      array
 
 :aspect:`Needed by`
       Frontend
 
 :aspect:`Mandatory`
-      Yes
+      No
 
 :aspect:`Default value`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 2
-
-         EmailToSender:
-           options:
-             templatePathAndFilename: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/{@format}.html'
+      undefined
 
 :aspect:`Good to know`
       - :ref:`"Email finisher"<apireference-finisheroptions-emailfinisher>`
+      - :ref:`"Accessing form runtime values"<concepts-finishers-customfinisherimplementations-accessingoptions-formruntimeaccessor>`
+      - :ref:`"Translate finisher options"<concepts-frontendrendering-translation-finishers>`
 
 :aspect:`Description`
-      Template path and filename for the mail body.
-      The placeholder {\@format} will be replaced with the value from option ``format``.
+      If set, this translation file(s) will be used for finisher option translations.
+      If not set, the translation file(s) from the 'Form' element will be used.
+      Read :ref:`Translate finisher options<concepts-frontendrendering-translation-finishers>` for more informations.
 
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.finishersdefinition.emailtosender.options.partialrootpaths:
@@ -544,20 +499,6 @@ formeditor.iconIdentifier
            formEditor:
              iconIdentifier: form-finisher
              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
-             predefinedDefaults:
-               options:
-                 subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
-                 senderAddress: ''
-                 senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
-                 attachUploads: true
-                 translation:
-                   language: ''
 
 .. :aspect:`Good to know`
       ToDo
@@ -592,20 +533,6 @@ formeditor.label
            formEditor:
              iconIdentifier: form-finisher
              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
-             predefinedDefaults:
-               options:
-                 subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
-                 senderAddress: ''
-                 senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
-                 attachUploads: true
-                 translation:
-                   language: ''
 
 :aspect:`Good to know`
       - :ref:`"Translate form editor settings"<concepts-formeditor-translation-formeditor>`
@@ -643,17 +570,17 @@ formeditor.predefinedDefaults
              predefinedDefaults:
                options:
                  subject: ''
-                 recipientAddress: ''
-                 recipientName: ''
+                 recipients: {  }
                  senderAddress: ''
                  senderName: ''
-                 replyToAddress: ''
-                 carbonCopyAddress: ''
-                 blindCarbonCopyAddress: ''
-                 format: html
+                 replyToRecipients: {  }
+                 carbonCopyRecipients: {  }
+                 blindCarbonCopyRecipients: {  }
+                 addHtmlPart: true
                  attachUploads: true
                  translation:
-                   language: ''
+                   language: 'default'
+                 title: ''
 
 .. :aspect:`Good to know`
       ToDo
@@ -723,17 +650,31 @@ FormEngine.elements
              elements:
                subject:
                  label: tt_content.finishersDefinition.EmailToSender.subject.label
-                 config:
-                   type: input
-               recipientAddress:
-                 label: tt_content.finishersDefinition.EmailToSender.recipientAddress.label
                  config:
                    type: input
                    eval: required
-               recipientName:
-                 label: tt_content.finishersDefinition.EmailToSender.recipientName.label
-                 config:
-                   type: input
+               recipients:
+                 title: tt_content.finishersDefinition.EmailToSender.recipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
                senderAddress:
                  label: tt_content.finishersDefinition.EmailToSender.senderAddress.label
                  config:
@@ -743,33 +684,77 @@ FormEngine.elements
                  label: tt_content.finishersDefinition.EmailToSender.senderName.label
                  config:
                    type: input
-               replyToAddress:
-                 label: tt_content.finishersDefinition.EmailToSender.replyToAddress.label
-                 config:
-                   type: input
-               carbonCopyAddress:
-                 label: tt_content.finishersDefinition.EmailToSender.carbonCopyAddress.label
-                 config:
-                   type: input
-               blindCarbonCopyAddress:
-                 label: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyAddress.label
+               replyToRecipients:
+                 title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               carbonCopyRecipients:
+                 title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               blindCarbonCopyRecipients:
+                 title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.label
+                 type: array
+                 section: true
+                 sectionItemKey: email
+                 sectionItemValue: name
+                 el:
+                   _arrayContainer:
+                     type: array
+                     title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
+                     el:
+                       email:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
+                           config:
+                             type: input
+                             eval: 'required,email'
+                       name:
+                         TCEforms:
+                           label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
+                           config:
+                             type: input
+               addHtmlPart:
+                 label: tt_content.finishersDefinition.EmailToSender.addHtmlPart.label
                  config:
-                   type: input
-               format:
-                 label: tt_content.finishersDefinition.EmailToSender.format.label
-                 config:
-                   type: select
-                   renderType: selectSingle
-                   minitems: 1
-                   maxitems: 1
-                   size: 1
-                   items:
-                     10:
-                       - tt_content.finishersDefinition.EmailToSender.format.1
-                       - html
-                     20:
-                       - tt_content.finishersDefinition.EmailToSender.format.2
-                       - plaintext
+                   type: check
+                   default: 1
                translation:
                  language:
                    label: tt_content.finishersDefinition.EmailToSender.language.label
@@ -783,6 +768,10 @@ FormEngine.elements
                        10:
                          - tt_content.finishersDefinition.EmailToSender.language.1
                          - default
+               title:
+                 label: tt_content.finishersDefinition.EmailToSender.title.label
+                 config:
+                   type: input
 
 :aspect:`Good to know`
       - :ref:`"Translate form plugin settings"<concepts-formplugin-translation-formengine>`
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form.rst
index 09442f4868e9..6c36e5d3671b 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form.rst
@@ -162,11 +162,8 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.200:
 .. include:: Form/formEditor/propertyCollections/finishers/10/editors/200.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.300:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/300.rst
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.400:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/400.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.350:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/350.rst
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.500:
 .. include:: Form/formEditor/propertyCollections/finishers/10/editors/500.rst
@@ -174,21 +171,27 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.600:
 .. include:: Form/formEditor/propertyCollections/finishers/10/editors/600.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.700:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/700.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.750:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/750.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.800:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/800.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.850:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/850.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.900:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/900.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.950:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/950.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.1000:
-.. include:: Form/formEditor/propertyCollections/finishers/10/editors/1000.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.1050:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/1050.rst
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.1100:
 .. include:: Form/formEditor/propertyCollections/finishers/10/editors/1100.rst
 
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.1200:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/1200.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.1400:
+.. include:: Form/formEditor/propertyCollections/finishers/10/editors/1400.rst
+
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.10.editors.9999:
 .. include:: Form/formEditor/propertyCollections/finishers/10/editors/9999.rst
 
@@ -204,11 +207,8 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.200:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/200.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.300:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/300.rst
-
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.400:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/400.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.350:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/350.rst
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.500:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/500.rst
@@ -216,17 +216,17 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.600:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/600.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.700:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/700.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.750:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/750.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.800:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/800.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.850:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/850.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.900:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/900.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.950:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/950.rst
 
-.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.1000:
-.. include:: Form/formEditor/propertyCollections/finishers/20/editors/1000.rst
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.1050:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/1050.rst
 
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.1100:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/1100.rst
@@ -234,6 +234,9 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.1200:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/1200.rst
 
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.1400:
+.. include:: Form/formEditor/propertyCollections/finishers/20/editors/1400.rst
+
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.20.editors.9999:
 .. include:: Form/formEditor/propertyCollections/finishers/20/editors/9999.rst
 
@@ -276,6 +279,12 @@ Properties
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.50.editors.100:
 .. include:: Form/formEditor/propertyCollections/finishers/50/editors/100.rst
 
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.50.editors.200:
+.. include:: Form/formEditor/propertyCollections/finishers/50/editors/200.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.50.editors.300:
+.. include:: Form/formEditor/propertyCollections/finishers/50/editors/300.rst
+
 .. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.form.formeditor.propertycollections.finishers.50.editors.9999:
 .. include:: Form/formEditor/propertyCollections/finishers/50/editors/9999.rst
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor.rst
index c1e3c548fe5a..b4827e4c849f 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor.rst
@@ -58,6 +58,9 @@ formEditor
                    50:
                      value: DeleteUploads
                      label: formEditor.elements.Form.editor.finishers.DeleteUploads.label
+                   60:
+                     value: Confirmation
+                     label: formEditor.elements.Form.editor.finishers.Confirmation.label
              _isCompositeFormElement: false
              _isTopLevelFormElement: true
              saveSuccessFlashMessageTitle: formEditor.elements.Form.saveSuccessFlashMessageTitle
@@ -98,24 +101,25 @@ formEditor
                        propertyValidators:
                          10: NotEmpty
                          20: FormElementIdentifierWithinCurlyBracesInclusive
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
+                       propertyPath: options.recipients
                        propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     400:
-                       identifier: recipientName
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label
-                       propertyPath: options.recipientName
-                       enableFormelementSelectionButton: true
-                       propertyValidators:
-                         10: FormElementIdentifierWithinCurlyBracesInclusive
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                      500:
                        identifier: senderAddress
                        templateName: Inspector-TextEditor
@@ -134,53 +138,83 @@ formEditor
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     1000:
-                       identifier: format
-                       templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.format.label
-                       propertyPath: options.format
-                       selectOptions:
-                         10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
                      1100:
                        identifier: attachUploads
                        templateName: Inspector-CheckboxEditor
                        label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
                        propertyPath: options.attachUploads
+                     1200:
+                       identifier: language
+                       templateName: Inspector-SingleSelectEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
+                       propertyPath: options.translation.language
+                       selectOptions:
+                         10:
+                           value: default
+                           label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
+                     1400:
+                       identifier: title
+                       templateName: Inspector-TextEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
+                       enableFormelementSelectionButton: true
+                       propertyValidators:
+                         10: FormElementIdentifierWithinCurlyBracesInclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
@@ -200,24 +234,25 @@ formEditor
                        propertyValidators:
                          10: NotEmpty
                          20: FormElementIdentifierWithinCurlyBracesInclusive
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     400:
-                       identifier: recipientName
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientName.label
-                       propertyPath: options.recipientName
-                       enableFormelementSelectionButton: true
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
+                       propertyPath: options.recipients
                        propertyValidators:
-                         10: FormElementIdentifierWithinCurlyBracesInclusive
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                      500:
                        identifier: senderAddress
                        templateName: Inspector-TextEditor
@@ -236,48 +271,60 @@ formEditor
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     1000:
-                       identifier: format
-                       templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.format.label
-                       propertyPath: options.format
-                       selectOptions:
-                         10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
                      1100:
                        identifier: attachUploads
                        templateName: Inspector-CheckboxEditor
@@ -292,6 +339,15 @@ formEditor
                          10:
                            value: default
                            label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
+                     1400:
+                       identifier: title
+                       templateName: Inspector-TextEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
+                       enableFormelementSelectionButton: true
+                       propertyValidators:
+                         10: FormElementIdentifierWithinCurlyBracesInclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
@@ -339,6 +395,24 @@ formEditor
                        identifier: header
                        templateName: Inspector-CollectionElementHeaderEditor
                        label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
+                     200:
+                       identifier: contentElement
+                       templateName: Inspector-Typo3WinBrowserEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
+                       buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
+                       browsableType: tt_content
+                       iconIdentifier: mimetypes-x-content-text
+                       propertyPath: options.contentElementUid
+                       propertyValidatorsMode: OR
+                       propertyValidators:
+                         10: IntegerOrEmpty
+                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                     300:
+                       identifier: message
+                       templateName: Inspector-TextareaEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
+                       propertyPath: options.message
+                       fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10.rst
index 83cc65bfa604..0359ee202965 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10.rst
@@ -39,24 +39,25 @@ formEditor.propertyCollections.finishers.10
                        propertyValidators:
                          10: NotEmpty
                          20: FormElementIdentifierWithinCurlyBracesInclusive
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
+                       propertyPath: options.recipients
                        propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     400:
-                       identifier: recipientName
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label
-                       propertyPath: options.recipientName
-                       enableFormelementSelectionButton: true
-                       propertyValidators:
-                         10: FormElementIdentifierWithinCurlyBracesInclusive
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                      500:
                        identifier: senderAddress
                        templateName: Inspector-TextEditor
@@ -75,53 +76,83 @@ formEditor.propertyCollections.finishers.10
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     1000:
-                       identifier: format
-                       templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.format.label
-                       propertyPath: options.format
-                       selectOptions:
-                         10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
                      1100:
                        identifier: attachUploads
                        templateName: Inspector-CheckboxEditor
                        label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
                        propertyPath: options.attachUploads
+                     1200:
+                       identifier: language
+                       templateName: Inspector-SingleSelectEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
+                       propertyPath: options.translation.language
+                       selectOptions:
+                         10:
+                           value: default
+                           label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
+                     1400:
+                       identifier: title
+                       templateName: Inspector-TextEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
+                       enableFormelementSelectionButton: true
+                       propertyValidators:
+                         10: FormElementIdentifierWithinCurlyBracesInclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1050.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1050.rst
new file mode 100644
index 000000000000..3bf25579201d
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1050.rst
@@ -0,0 +1,36 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.10.editors.1050
+--------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1050
+
+:aspect:`Data type`
+      array/ :ref:`[CheckboxEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.checkboxeditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 10:
+                   identifier: EmailToSender
+                   editors:
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1100.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1100.rst
index 73a162fe14f3..a8bea036e69c 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1100.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1100.rst
@@ -1,10 +1,10 @@
 .. include:: /Includes.rst.txt
 
-formEditor.propertyCollections.finishers.10.editors.1000
+formEditor.propertyCollections.finishers.10.editors.1100
 --------------------------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1000
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1100
 
 :aspect:`Data type`
       array/ :ref:`[CheckboxEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.checkboxeditor>`
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1000.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1200.rst
similarity index 68%
rename from typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1000.rst
rename to typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1200.rst
index 3180bcfe17de..a30c810c5656 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1000.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1200.rst
@@ -1,10 +1,10 @@
 .. include:: /Includes.rst.txt
 
-formEditor.propertyCollections.finishers.10.editors.1000
+formEditor.propertyCollections.finishers.10.editors.1200
 --------------------------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1000
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1200
 
 :aspect:`Data type`
       array/ :ref:`[SingleSelectEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.singleselecteditor>`
@@ -18,7 +18,7 @@ formEditor.propertyCollections.finishers.10.editors.1000
 :aspect:`Default value (for prototype 'standard')`
       .. code-block:: yaml
          :linenos:
-         :emphasize-lines: 8-
+         :emphasize-lines: 4-
 
          Form:
            formEditor:
@@ -27,16 +27,13 @@ formEditor.propertyCollections.finishers.10.editors.1000
                  10:
                    identifier: EmailToSender
                    editors:
-                     1000:
-                       identifier: format
+                     1200:
+                       identifier: language
                        templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.format.label
-                       propertyPath: options.format
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
+                       propertyPath: options.translation.language
                        selectOptions:
                          10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+                           value: default
+                           label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/400.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1400.rst
similarity index 72%
rename from typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/400.rst
rename to typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1400.rst
index ecf09cde8c2b..00e21d7a3a20 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/400.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/1400.rst
@@ -1,9 +1,10 @@
 .. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.10.editors.400
--------------------------------------------------------
+
+formEditor.propertyCollections.finishers.10.editors.1400
+--------------------------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.400
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1400
 
 :aspect:`Data type`
       array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
@@ -26,11 +27,12 @@ formEditor.propertyCollections.finishers.10.editors.400
                  10:
                    identifier: EmailToSender
                    editors:
-                     400:
-                       identifier: recipientName
+                     1400:
+                       identifier: title
                        templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label
-                       propertyPath: options.recipientName
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/200.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/200.rst
index 189de84e9f61..cb6affeeb4c7 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/200.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/200.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.10.editors.200
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/300.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/300.rst
deleted file mode 100644
index d2b0a07d1181..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/300.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.10.editors.300
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.300
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 10:
-                   identifier: EmailToSender
-                   editors:
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/350.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/350.rst
new file mode 100644
index 000000000000..3e1a93005dd9
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/350.rst
@@ -0,0 +1,49 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.10.editors.350
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.350
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 10:
+                   identifier: EmailToSender
+                   editors:
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
+                       propertyPath: options.recipients
+                       propertyValidators:
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/500.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/500.rst
index 07d9a736edfe..c827cd8a2dcd 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/500.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/500.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.10.editors.500
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/600.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/600.rst
index 931f32d9634c..0148af2df3ff 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/600.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/600.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.10.editors.600
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/700.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/700.rst
deleted file mode 100644
index 7e3c9300dace..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/700.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.10.editors.700
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.700
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 10:
-                   identifier: EmailToSender
-                   editors:
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/750.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/750.rst
new file mode 100644
index 000000000000..bdcead11c7c4
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/750.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.10.editors.750
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.750
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 10:
+                   identifier: EmailToSender
+                   editors:
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/800.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/800.rst
deleted file mode 100644
index b7967c2c8b47..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/800.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.10.editors.800
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.800
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 10:
-                   identifier: EmailToSender
-                   editors:
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/850.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/850.rst
new file mode 100644
index 000000000000..e7b1898c3d03
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/850.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.10.editors.850
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.850
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 10:
+                   identifier: EmailToSender
+                   editors:
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/900.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/900.rst
deleted file mode 100644
index ba07ca54adba..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/900.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.10.editors.900
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.900
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 10:
-                   identifier: EmailToSender
-                   editors:
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/950.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/950.rst
new file mode 100644
index 000000000000..a477448bac39
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/10/editors/950.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.10.editors.950
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.950
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 10:
+                   identifier: EmailToSender
+                   editors:
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20.rst
index 6be1baa1765c..58b2535e4eb9 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20.rst
@@ -39,24 +39,25 @@ formEditor.propertyCollections.finishers.20
                        propertyValidators:
                          10: NotEmpty
                          20: FormElementIdentifierWithinCurlyBracesInclusive
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
+                       propertyPath: options.recipients
                        propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     400:
-                       identifier: recipientName
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientName.label
-                       propertyPath: options.recipientName
-                       enableFormelementSelectionButton: true
-                       propertyValidators:
-                         10: FormElementIdentifierWithinCurlyBracesInclusive
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                      500:
                        identifier: senderAddress
                        templateName: Inspector-TextEditor
@@ -75,48 +76,60 @@ formEditor.propertyCollections.finishers.20
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-                     1000:
-                       identifier: format
-                       templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.format.label
-                       propertyPath: options.format
-                       selectOptions:
-                         10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
                      1100:
                        identifier: attachUploads
                        templateName: Inspector-CheckboxEditor
@@ -131,6 +144,15 @@ formEditor.propertyCollections.finishers.20
                          10:
                            value: default
                            label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
+                     1400:
+                       identifier: title
+                       templateName: Inspector-TextEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
+                       enableFormelementSelectionButton: true
+                       propertyValidators:
+                         10: FormElementIdentifierWithinCurlyBracesInclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1000.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1000.rst
deleted file mode 100644
index f452266616c0..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1000.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-.. include:: /Includes.rst.txt
-
-formEditor.propertyCollections.finishers.20.editors.1000
---------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1000
-
-:aspect:`Data type`
-      array/ :ref:`[SingleSelectEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.singleselecteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 20:
-                   identifier: EmailToReceiver
-                   editors:
-                     1000:
-                       identifier: format
-                       templateName: Inspector-SingleSelectEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.format.label
-                       propertyPath: options.format
-                       selectOptions:
-                         10:
-                           value: plaintext
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
-                         20:
-                           value: html
-                           label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1050.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1050.rst
new file mode 100644
index 000000000000..d498efaa496e
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1050.rst
@@ -0,0 +1,36 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.20.editors.1050
+--------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1050
+
+:aspect:`Data type`
+      array/ :ref:`[CheckboxEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.checkboxeditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 20:
+                   identifier: EmailToReceiver
+                   editors:
+                     1050:
+                       identifier: addHtmlPart
+                       templateName: Inspector-CheckboxEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
+                       propertyPath: options.addHtmlPart
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1100.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1100.rst
index b951aaae9a5e..88626c1fb094 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1100.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1100.rst
@@ -1,10 +1,10 @@
 .. include:: /Includes.rst.txt
 
-formEditor.propertyCollections.finishers.20.editors.1000
+formEditor.propertyCollections.finishers.20.editors.1100
 --------------------------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1000
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1100
 
 :aspect:`Data type`
       array/ :ref:`[CheckboxEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.checkboxeditor>`
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/400.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1400.rst
similarity index 68%
rename from typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/400.rst
rename to typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1400.rst
index ab1193c0726d..eb2e0f110f7d 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/400.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/1400.rst
@@ -1,9 +1,10 @@
 .. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.20.editors.400
--------------------------------------------------------
+
+formEditor.propertyCollections.finishers.20.editors.1400
+--------------------------------------------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.400
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1400
 
 :aspect:`Data type`
       array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
@@ -23,15 +24,15 @@ formEditor.propertyCollections.finishers.20.editors.400
            formEditor:
              propertyCollections:
                finishers:
-                 20:
-                   identifier: EmailToReceiver
+                 10:
+                   identifier: EmailToSender
                    editors:
-                     400:
-                       identifier: recipientName
+                     1400:
+                       identifier: title
                        templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label
-                       propertyPath: options.recipientName
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
+                       propertyPath: options.title
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
                        enableFormelementSelectionButton: true
                        propertyValidators:
                          10: FormElementIdentifierWithinCurlyBracesInclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/200.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/200.rst
index 102c71368d18..46f3474f041e 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/200.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/200.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.20.editors.200
 -------------------------------------------------------
 
@@ -35,3 +36,4 @@ formEditor.propertyCollections.finishers.20.editors.200
                        propertyValidators:
                          10: NotEmpty
                          20: FormElementIdentifierWithinCurlyBracesInclusive
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/300.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/300.rst
deleted file mode 100644
index 1d52460d047e..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/300.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.20.editors.300
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.300
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 20:
-                   identifier: EmailToReceiver
-                   editors:
-                     300:
-                       identifier: recipientAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientAddress.label
-                       propertyPath: options.recipientAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmail
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/350.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/350.rst
new file mode 100644
index 000000000000..2deb9c0e4580
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/350.rst
@@ -0,0 +1,49 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.20.editors.350
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.350
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 20:
+                   identifier: EmailToReceiver
+                   editors:
+                     350:
+                       identifier: recipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
+                       propertyPath: options.recipients
+                       propertyValidators:
+                         10: NotEmpty
+                       fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/500.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/500.rst
index e6cd52c157b7..9a1ea8f92a1e 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/500.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/500.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.20.editors.500
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/600.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/600.rst
index d6199950d2f7..b7f03f727f4f 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/600.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/600.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.20.editors.600
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/700.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/700.rst
deleted file mode 100644
index 786d84434cf0..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/700.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.20.editors.700
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.700
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 20:
-                   identifier: EmailToReceiver
-                   editors:
-                     700:
-                       identifier: replyToAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToAddress.label
-                       propertyPath: options.replyToAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/750.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/750.rst
new file mode 100644
index 000000000000..8f969f44de17
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/750.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.20.editors.750
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.750
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 20:
+                   identifier: EmailToReceiver
+                   editors:
+                     750:
+                       identifier: replyToRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
+                       propertyPath: options.replyToRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/800.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/800.rst
deleted file mode 100644
index 0704a43a658c..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/800.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.20.editors.800
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.800
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 20:
-                   identifier: EmailToReceiver
-                   editors:
-                     800:
-                       identifier: carbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyAddress.label
-                       propertyPath: options.carbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/850.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/850.rst
new file mode 100644
index 000000000000..aab03bcedd0c
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/850.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.20.editors.850
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.850
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 20:
+                   identifier: EmailToReceiver
+                   editors:
+                     850:
+                       identifier: carbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
+                       propertyPath: options.carbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/900.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/900.rst
deleted file mode 100644
index 1c4e725845eb..000000000000
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/900.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. include:: /Includes.rst.txt
-formEditor.propertyCollections.finishers.20.editors.900
--------------------------------------------------------
-
-:aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.900
-
-:aspect:`Data type`
-      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
-
-:aspect:`Needed by`
-      Backend (form editor)
-
-:aspect:`Mandatory`
-      Recommended
-
-:aspect:`Default value (for prototype 'standard')`
-      .. code-block:: yaml
-         :linenos:
-         :emphasize-lines: 8-
-
-         Form:
-           formEditor:
-             propertyCollections:
-               finishers:
-                 20:
-                   identifier: EmailToReceiver
-                   editors:
-                     900:
-                       identifier: blindCarbonCopyAddress
-                       templateName: Inspector-TextEditor
-                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyAddress.label
-                       propertyPath: options.blindCarbonCopyAddress
-                       enableFormelementSelectionButton: true
-                       propertyValidatorsMode: OR
-                       propertyValidators:
-                         10: NaiveEmailOrEmpty
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/950.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/950.rst
new file mode 100644
index 000000000000..d98aaf24d69c
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/20/editors/950.rst
@@ -0,0 +1,46 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.20.editors.950
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.950
+
+:aspect:`Data type`
+      array/ :ref:`[PropertyGridEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.propertygrideditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 20:
+                   identifier: EmailToReceiver
+                   editors:
+                     950:
+                       identifier: blindCarbonCopyRecipients
+                       templateName: Inspector-PropertyGridEditor
+                       label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
+                       propertyPath: options.blindCarbonCopyRecipients
+                       isSortable: true
+                       enableAddRow: true
+                       enableDeleteRow: true
+                       useLabelAsFallbackValue: false
+                       gridColumns:
+                         -
+                           name: value
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
+                         -
+                           name: label
+                           title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/30/editors/200.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/30/editors/200.rst
index 8e5a193a1bcb..d6c010398ec6 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/30/editors/200.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/30/editors/200.rst
@@ -1,4 +1,5 @@
 .. include:: /Includes.rst.txt
+
 formEditor.propertyCollections.finishers.30.editors.200
 -------------------------------------------------------
 
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50.rst
index 5d410d6bc688..04c282a0b04f 100644
--- a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50.rst
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50.rst
@@ -31,6 +31,24 @@ formEditor.propertyCollections.finishers.50
                        identifier: header
                        templateName: Inspector-CollectionElementHeaderEditor
                        label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
+                     200:
+                       identifier: contentElement
+                       templateName: Inspector-Typo3WinBrowserEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
+                       buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
+                       browsableType: tt_content
+                       iconIdentifier: mimetypes-x-content-text
+                       propertyPath: options.contentElementUid
+                       propertyValidatorsMode: OR
+                       propertyValidators:
+                         10: IntegerOrEmpty
+                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                     300:
+                       identifier: message
+                       templateName: Inspector-TextareaEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
+                       propertyPath: options.message
+                       fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/200.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/200.rst
new file mode 100644
index 000000000000..f1dd615af113
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/200.rst
@@ -0,0 +1,42 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.50.editors.200
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.200
+
+:aspect:`Data type`
+      array/ :ref:`[Typo3WinBrowserEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.typo3winbrowsereditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 50:
+                   identifier: Confirmation
+                   editors:
+                     200:
+                       identifier: contentElement
+                       templateName: Inspector-Typo3WinBrowserEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
+                       buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
+                       browsableType: tt_content
+                       iconIdentifier: mimetypes-x-content-text
+                       propertyPath: options.contentElementUid
+                       propertyValidatorsMode: OR
+                       propertyValidators:
+                         10: IntegerOrEmpty
+                         20: FormElementIdentifierWithinCurlyBracesExclusive
+
diff --git a/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/300.rst b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/300.rst
new file mode 100644
index 000000000000..7037343392be
--- /dev/null
+++ b/typo3/sysext/form/Documentation/I/Config/proto/formElements/formElementTypes/Form/formEditor/propertyCollections/finishers/50/editors/300.rst
@@ -0,0 +1,36 @@
+.. include:: /Includes.rst.txt
+
+formEditor.propertyCollections.finishers.50.editors.300
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.300
+
+:aspect:`Data type`
+      array/ :ref:`[TextareaEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.textareaeditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Form:
+           formEditor:
+             propertyCollections:
+               finishers:
+                 50:
+                   identifier: Confirmation
+                   editors:
+                     300:
+                       identifier: message
+                       templateName: Inspector-TextareaEditor
+                       label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
+                       propertyPath: options.message
+                       fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
+
-- 
GitLab