BeforeEmailFinisherInitializedEvent
New in version 14.0
The PSR-14 event
Before has
been introduced to provide developers with control over email
configuration without needing to extend or override the
Email
class.
A PSR-14 event
\TYPO3\
is dispatched before the
\TYPO3\ is
initialized and allows listeners to modify the finisher options.
This enables developers to customize email behavior programmatically, such as:
- Setting alternative recipients based on frontend user permissions
- Modifying the email subject or content dynamically
- Replacing recipients with developer email addresses in test environments
- Adding or removing CC/BCC recipients conditionally
- Customizing reply-to addresses
Example
The corresponding event listener class:
<?php
declare(strict_types=1);
namespace Vendor\MyPackage\Form\EventListener;
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Form\Event\BeforeEmailFinisherInitializedEvent;
final readonly class BeforeEmailFinisherInitializedEventListener
{
#[AsEventListener(
identifier: 'my-package/form/modify-email-finisher-options',
)]
public function __invoke(BeforeEmailFinisherInitializedEvent $event): void
{
$options = $event->getOptions();
$context = $event->getFinisherContext();
// Overwrite recipients based on FormContext
if ($context->getFormRuntime()->getFormDefinition()->getIdentifier() === 'my-form-123') {
$options['recipients'] = ['user@example.org' => 'John Doe'];
}
// Modify subject dynamically
$options['subject'] = 'Custom subject: ' . ($options['subject'] ?? '');
// Clear CC and BCC recipients
$options['replyToRecipients'] = [];
$options['blindCarbonCopyRecipients'] = [];
$event->setOptions($options);
}
}
API
- class BeforeEmailFinisherInitializedEvent
-
- Fully qualified name
-
\TYPO3\
CMS\ Form\ Event\ Before Email Finisher Initialized Event
Event fired before the email finisher is initialized