1313
1414use Psr \Log \LoggerInterface ;
1515use Psr \Log \NullLogger ;
16- use Symfony \Component \EventDispatcher \EventDispatcher ;
1716use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
1817use Symfony \Component \Mailer \DelayedSmtpEnvelope ;
1918use Symfony \Component \Mailer \Event \MessageEvent ;
@@ -37,7 +36,7 @@ abstract class AbstractTransport implements TransportInterface
3736
3837public function __construct (EventDispatcherInterface $ dispatcher =null ,LoggerInterface $ logger =null )
3938 {
40- $ this ->dispatcher =$ dispatcher ?: new EventDispatcher () ;
39+ $ this ->dispatcher =$ dispatcher ;
4140$ this ->logger =$ logger ?:new NullLogger ();
4241 }
4342
@@ -69,14 +68,18 @@ public function send(RawMessage $message, SmtpEnvelope $envelope = null): ?SentM
6968 }
7069 }
7170
72- $ event =new MessageEvent ($ message ,$ envelope );
73- $ this ->dispatcher ->dispatch ($ event );
74- $ envelope =$ event ->getEnvelope ();
71+ if (null !==$ this ->dispatcher ) {
72+ $ event =new MessageEvent ($ message ,$ envelope );
73+ $ this ->dispatcher ->dispatch ($ event );
74+ $ envelope =$ event ->getEnvelope ();
75+ $ message =$ event ->getMessage ();
76+ }
77+
7578if (!$ envelope ->getRecipients ()) {
7679return null ;
7780 }
7881
79- $ message =new SentMessage ($ event -> getMessage () ,$ envelope );
82+ $ message =new SentMessage ($ message ,$ envelope );
8083$ this ->doSend ($ message );
8184
8285$ this ->checkThrottling ();