8000 bug #59781 [Mailer] fix multiple transports default injection (fkropf… · symfony/symfony@4f652a5 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4f652a5

Browse files
committed
bug #59781 [Mailer] fix multiple transports default injection (fkropfhamer)
This PR was submitted for the 7.2 branch but it was squashed and merged into the 6.4 branch instead. Discussion ---------- [Mailer] fix multiple transports default injection | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | Fix #46372 | License | MIT As discussed here #46372 If multiple mailer transports are configured and you try to inject the TransportInterface as a service, only the first one gets injected and not all the Transports. Therefore, X-Transport headers do not work. Commits ------- a50880b [Mailer] fix multiple transports default injection
2 parents c1082f2 + a50880b commit 4f652a5

File tree

3 files changed

+2
-7
lines changed

3 files changed

+2
-7
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2660,7 +2660,6 @@ private function registerMailerConfiguration(array $config, ContainerBuilder $co
26602660
}
26612661
$transports = $config['dsn'] ? ['main' => $config['dsn']] : $config['transports'];
26622662
$container->getDefinition('mailer.transports')->setArgument(0, $transports);
2663-
$container->getDefinition('mailer.default_transport')->setArgument(0, current($transports));
26642663

26652664
$mailer = $container->getDefinition('mailer.mailer');
26662665
if (false === $messageBus = $config['message_bus']) {

src/Symfony/Bundle/FrameworkBundle/Resources/config/mailer.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@
4646
])
4747

4848
->set('mailer.default_transport', TransportInterface::class)
49-
->factory([service('mailer.transport_factory'), 'fromString'])
50-
->args([
51-
abstract_arg('env(MAILER_DSN)'),
52-
])
49+
->alias('mailer.default_transport', 'mailer.transports')
5350
->alias(TransportInterface::class, 'mailer.default_transport')
5451

5552
->set('mailer.messenger.message_handler', MessageHandler::class)

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2103,8 +2103,7 @@ public function testMailer(string $configFile, array $expectedTransports, array
21032103
$this->assertTrue($container->hasAlias('mailer'));
21042104
$this->assertTrue($container->hasDefinition('mailer.transports'));
21052105
$this->assertSame($expectedTransports, $container->getDefinition('mailer.transports')->getArgument(0));
2106-
$this->assertTrue($container->hasDefinition('mailer.default_transport'));
2107-
$this->assertSame(current($expectedTransports), $container->getDefinition('mailer.default_transport')->getArgument(0));
2106+
$this->assertTrue($container->hasAlias('mailer.default_transport'));
21082107
$this->assertTrue($container->hasDefinition('mailer.envelope_listener'));
21092108
$l = $container->getDefinition('mailer.envelope_listener');
21102109
$this->assertSame('sender@example.org', $l->getArgument(0));

0 commit comments

Comments
 (0)
0