From 57be7f40cca18ce6afd121bd4a905e3d7c4e5a90 Mon Sep 17 00:00:00 2001 From: Sergey F Date: Wed, 21 Jul 2021 14:01:16 +0300 Subject: [PATCH] [Mailer] Add support of ping_threshold to SesTransportFactory (closes #39044) --- .../Amazon/Tests/Transport/SesTransportFactoryTest.php | 5 +++++ .../Bridge/Amazon/Transport/SesTransportFactory.php | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php index f2c9c87cfb579..3996070ebcc5d 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php @@ -116,6 +116,11 @@ public function createProvider(): iterable new Dsn('ses+smtps', 'default', self::USER, self::PASSWORD, null, ['region' => 'eu-west-1']), new SesSmtpTransport(self::USER, self::PASSWORD, 'eu-west-1', $dispatcher, $logger), ]; + + yield [ + new Dsn('ses+smtps', 'default', self::USER, self::PASSWORD, null, ['region' => 'eu-west-1', 'ping_threshold' => '10']), + (new SesSmtpTransport(self::USER, self::PASSWORD, 'eu-west-1', $dispatcher, $logger))->setPingThreshold(10), + ]; } public function unsupportedSchemeProvider(): iterable diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesTransportFactory.php b/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesTransportFactory.php index 9180de06b26fe..2c0fa77677171 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesTransportFactory.php +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/Transport/SesTransportFactory.php @@ -30,7 +30,13 @@ public function create(Dsn $dsn): TransportInterface $region = $dsn->getOption('region'); if ('ses+smtp' === $scheme || 'ses+smtps' === $scheme) { - return new SesSmtpTransport($this->getUser($dsn), $this->getPassword($dsn), $region, $this->dispatcher, $this->logger); + $transport = new SesSmtpTransport($this->getUser($dsn), $this->getPassword($dsn), $region, $this->dispatcher, $this->logger); + + if (null !== ($pingThreshold = $dsn->getOption('ping_threshold'))) { + $transport->setPingThreshold((int) $pingThreshold); + } + + return $transport; } switch ($scheme) {