13
13
14
14
use Psr \Log \LoggerInterface ;
15
15
use Psr \Log \NullLogger ;
16
- use Symfony \Component \EventDispatcher \EventDispatcher ;
17
16
use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
18
17
use Symfony \Component \Mailer \DelayedSmtpEnvelope ;
19
18
use Symfony \Component \Mailer \Event \MessageEvent ;
@@ -37,7 +36,7 @@ abstract class AbstractTransport implements TransportInterface
37
36
38
37
public function __construct (EventDispatcherInterface $ dispatcher = null , LoggerInterface $ logger = null )
39
38
{
40
- $ this ->dispatcher = $ dispatcher ?: new EventDispatcher () ;
39
+ $ this ->dispatcher = $ dispatcher ;
41
40
$ this ->logger = $ logger ?: new NullLogger ();
42
41
}
43
42
@@ -69,14 +68,18 @@ public function send(RawMessage $message, SmtpEnvelope $envelope = null): ?SentM
69
68
}
70
69
}
71
70
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
+
75
78
if (!$ envelope ->getRecipients ()) {
76
79
return null ;
77
80
}
78
81
79
- $ message = new SentMessage ($ event -> getMessage () , $ envelope );
82
+ $ message = new SentMessage ($ message , $ envelope );
80
83
$ this ->doSend ($ message );
81
84
82
85
$ this ->checkThrottling ();
0 commit comments