BeforeMailerSentMessageEvent¶
New in version 12.0.
The PSR-14 event \TYPO3\CMS\Core\Mail\Event\BeforeMailerSentMessageEvent
is dispatched before the message is sent by the mailer and can be
used to manipulate the \Symfony\Component\Mime\RawMessage
and the
\Symfony\Component\Mailer\Envelope
. Usually a
\Symfony\Component\Mime\Email
or \TYPO3\CMS\Core\Mail\FluidEmail
instance is given as RawMessage
. Additionally the mailer instance is
given, which depends on the implementation - usually
\TYPO3\CMS\Core\Mail\Mailer
. It contains the
\Symfony\Component\Mailer\Transport
object, which can be retrieved using
the getTransport()
method.
Example¶
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\Mail\EventListener;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\Mail\Event\BeforeMailerSentMessageEvent;
#[AsEventListener(
identifier: 'my-extension/modify-message'
)]
final class MyEventListener
{
public function __invoke(BeforeMailerSentMessageEvent $event): void
{
$message = $event->getMessage();
// If $message is an Email implementation, add an additional recipient
if ($message instanceof Email) {
$message->addCc(new Address('cc_recipient@example.org'));
}
}
}
New in version 13.0: The PHP attribute \TYPO3\CMS\Core\Attribute\AsEventListener
has been
introduced to tag a PHP class as an event listener. Alternatively, or if you
need to be compatible with older TYPO3 versions, you can also register an
event listener via the Configuration/Services.yaml
file. Switch to
an older version of this page for an example or have a look at the section
Implementing an event listener in your extension.
API¶
- class TYPO3\CMS\Core\Mail\Event\BeforeMailerSentMessageEvent¶
This event is fired before the Mailer has sent a message and allows listeners to manipulate the RawMessage and the Envelope.
Note: Usually TYPO3CMSCoreMailMailer is given to the event. This implementation allows to retrieve the TransportInterface using the getTransport() method.
- getMessage()¶
- Return type
Symfony\Component\Mime\RawMessage
- setMessage(Symfony\\Component\\Mime\\RawMessage $message)¶
- Parameters
$message (
Symfony\Component\Mime\RawMessage
) -- the message
- getEnvelope()¶
- Return type
Symfony\Component\Mailer\Envelope
- setEnvelope(Symfony\\Component\\Mailer\\Envelope $envelope = NULL)¶
- Parameters
$envelope (
Symfony\Component\Mailer\Envelope
) -- the envelope, default: NULL
- getMailer()¶
- Return type
Symfony\Component\Mailer\MailerInterface