[Mailer] Fixed 'verify_peer' option in mailer DSN being ignored

This commit is contained in:
SnakePin 2020-08-27 14:14:43 +03:00 committed by Fabien Potencier
parent 9c86cd2b4e
commit 1c789e87aa
2 changed files with 18 additions and 1 deletions

View File

@ -81,5 +81,22 @@ class EsmtpTransportFactoryTest extends TransportFactoryTestCase
new Dsn('smtps', 'example.com', '', '', 465, ['verify_peer' => false]),
$transport,
];
yield [
new Dsn('smtps', 'example.com', '', '', 465, ['verify_peer' => 'false']),
$transport,
];
yield [
Dsn::fromString('smtps://:@example.com?verify_peer=0'),
$transport,
];
$transport = new EsmtpTransport('example.com', 465, true, $eventDispatcher, $logger);
yield [
Dsn::fromString('smtps://:@example.com?verify_peer='),
$transport,
];
}
}

View File

@ -29,7 +29,7 @@ final class EsmtpTransportFactory extends AbstractTransportFactory
$transport = new EsmtpTransport($host, $port, $tls, $this->dispatcher, $this->logger);
if (!$dsn->getOption('verify_peer', true)) {
if ('' !== $dsn->getOption('verify_peer') && !filter_var($dsn->getOption('verify_peer', true), FILTER_VALIDATE_BOOLEAN)) {
/** @var SocketStream $stream */
$stream = $transport->getStream();
$streamOptions = $stream->getStreamOptions();