From 1de72d09ca22878d02496b40f2be516adba5e736 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 23 Apr 2023 15:04:35 +0100 Subject: [PATCH] Mail: updated peer verify option name and added test --- .env.example.complete | 2 +- app/Config/mail.php | 2 +- phpunit.xml | 1 + tests/Unit/ConfigTest.php | 23 ++++++++++++++++++++++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.env.example.complete b/.env.example.complete index 8c0accf1d..9ce33f58f 100644 --- a/.env.example.complete +++ b/.env.example.complete @@ -79,7 +79,7 @@ MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null -MAIL_VERIFY_PEER=true +MAIL_VERIFY_SSL=true # Command to use when email is sent via sendmail MAIL_SENDMAIL_COMMAND="/usr/sbin/sendmail -bs" diff --git a/app/Config/mail.php b/app/Config/mail.php index 6cd5ee28f..87514aa40 100644 --- a/app/Config/mail.php +++ b/app/Config/mail.php @@ -32,7 +32,7 @@ return [ 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), - 'verify_peer' => env('MAIL_VERIFY_PEER', true), + 'verify_peer' => env('MAIL_VERIFY_SSL', true), 'timeout' => null, 'local_domain' => env('MAIL_EHLO_DOMAIN'), ], diff --git a/phpunit.xml b/phpunit.xml index 8a526a704..704372c5c 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -27,6 +27,7 @@ + diff --git a/tests/Unit/ConfigTest.php b/tests/Unit/ConfigTest.php index 9966a4fb1..103767516 100644 --- a/tests/Unit/ConfigTest.php +++ b/tests/Unit/ConfigTest.php @@ -3,6 +3,8 @@ namespace Tests\Unit; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Mail; +use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport; use Tests\TestCase; /** @@ -96,11 +98,30 @@ class ConfigTest extends TestCase $this->checkEnvConfigResult('EXPORT_PAGE_SIZE', 'a4', 'snappy.pdf.options.page-size', 'A4'); } - public function test_sendmail_command_is_configurage() + public function test_sendmail_command_is_configurable() { $this->checkEnvConfigResult('MAIL_SENDMAIL_COMMAND', '/var/sendmail -o', 'mail.mailers.sendmail.path', '/var/sendmail -o'); } + public function test_mail_disable_ssl_verification_alters_mailer() + { + $getStreamOptions = function (): array { + /** @var EsmtpTransport $transport */ + $transport = Mail::mailer('smtp')->getSymfonyTransport(); + return $transport->getStream()->getStreamOptions(); + }; + + $this->assertEmpty($getStreamOptions()); + + + $this->runWithEnv('MAIL_VERIFY_SSL', 'false', function () use ($getStreamOptions) { + $options = $getStreamOptions(); + $this->assertArrayHasKey('ssl', $options); + $this->assertFalse($options['ssl']['verify_peer']); + $this->assertFalse($options['ssl']['verify_peer_name']); + }); + } + /** * Set an environment variable of the given name and value * then check the given config key to see if it matches the given result.