Skip to content

Commit b9f8c7b

Browse files
committed
bug #33376 [Mailer] Remove the default dispatcher in AbstractTransport (fabpot)
This PR was merged into the 4.3 branch. Discussion ---------- [Mailer] Remove the default dispatcher in AbstractTransport | Q | A | ------------- | --- | Branch? | 4.3 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | n/a | License | MIT | Doc PR | n:a Creating a default event dispatcher does not make sense as nobody can listen on it. Commits ------- 55d6a65 [Mailer] Remove the default dispatcher in AbstractTransport
2 parents d67289c + 55d6a65 commit b9f8c7b

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/Symfony/Component/Mailer/Transport/AbstractTransport.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
use Psr\Log\LoggerInterface;
1515
use Psr\Log\NullLogger;
16-
use Symfony\Component\EventDispatcher\EventDispatcher;
1716
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
1817
use Symfony\Component\Mailer\DelayedSmtpEnvelope;
1918
use 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

Comments
 (0)