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
3837 public 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+
7578 if (!$ envelope ->getRecipients ()) {
7679 return null ;
7780 }
7881
79- $ message = new SentMessage ($ event -> getMessage () , $ envelope );
82+ $ message = new SentMessage ($ message , $ envelope );
8083 $ this ->doSend ($ message );
8184
8285 $ this ->checkThrottling ();
0 commit comments