Skip to content

Commit 465989e

Browse files
committed
Mail: Updated to forked symfony/mailer to allow assurance of tls
Related to #4358
1 parent 8063514 commit 465989e

File tree

4 files changed

+109
-113
lines changed

4 files changed

+109
-113
lines changed

app/Config/mail.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@
3131
'mailers' => [
3232
'smtp' => [
3333
'transport' => 'smtp',
34-
'scheme' => ($mailEncryption === 'tls' || $mailEncryption === 'ssl') ? 'smtps' : null,
34+
'scheme' => null,
3535
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
3636
'port' => env('MAIL_PORT', 587),
3737
'username' => env('MAIL_USERNAME'),
3838
'password' => env('MAIL_PASSWORD'),
3939
'verify_peer' => env('MAIL_VERIFY_SSL', true),
4040
'timeout' => null,
4141
'local_domain' => env('MAIL_EHLO_DOMAIN'),
42+
'tls_required' => ($mailEncryption === 'tls' || $mailEncryption === 'ssl'),
4243
],
4344

4445
'sendmail' => [

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
"nunomaduro/larastan": "^2.4",
5050
"phpunit/phpunit": "^9.5",
5151
"squizlabs/php_codesniffer": "^3.7",
52-
"ssddanbrown/asserthtml": "^2.0"
52+
"ssddanbrown/asserthtml": "^2.0",
53+
"ssddanbrown/symfony-mailer": "6.0.x-dev"
5354
},
5455
"autoload": {
5556
"psr-4": {

composer.lock

Lines changed: 93 additions & 97 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/Unit/ConfigTest.php

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use Illuminate\Support\Facades\Log;
66
use Illuminate\Support\Facades\Mail;
77
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
8-
use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream;
98
use Tests\TestCase;
109

1110
/**
@@ -125,41 +124,40 @@ public function test_mail_disable_ssl_verification_alters_mailer()
125124

126125
public function test_non_null_mail_encryption_options_enforce_smtp_scheme()
127126
{
128-
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'tls', 'mail.mailers.smtp.scheme', 'smtps');
129-
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'ssl', 'mail.mailers.smtp.scheme', 'smtps');
130-
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'null', 'mail.mailers.smtp.scheme', null);
127+
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'tls', 'mail.mailers.smtp.tls_required', true);
128+
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'ssl', 'mail.mailers.smtp.tls_required', true);
129+
$this->checkEnvConfigResult('MAIL_ENCRYPTION', 'null', 'mail.mailers.smtp.tls_required', false);
131130
}
132131

133132
public function test_smtp_scheme_and_certain_port_forces_tls_usage()
134133
{
135-
$isMailTlsForcedEnabled = function () {
134+
$isMailTlsRequired = function () {
135+
/** @var \BookStack\App\Mail\EsmtpTransport $transport */
136136
$transport = Mail::mailer('smtp')->getSymfonyTransport();
137-
/** @var SocketStream $stream */
138-
$stream = $transport->getStream();
139137
Mail::purge('smtp');
140-
return $stream->isTLS();
138+
return $transport->getTlsRequirement();
141139
};
142140

143141
config()->set([
144-
'mail.mailers.smtp.scheme' => null,
142+
'mail.mailers.smtp.tls_required' => null,
145143
'mail.mailers.smtp.port' => 587,
146144
]);
147145

148-
$this->assertFalse($isMailTlsForcedEnabled());
146+
$this->assertFalse($isMailTlsRequired());
149147

150148
config()->set([
151-
'mail.mailers.smtp.scheme' => 'smtps',
149+
'mail.mailers.smtp.tls_required' => 'tls',
152150
'mail.mailers.smtp.port' => 587,
153151
]);
154152

155-
$this->assertTrue($isMailTlsForcedEnabled());
153+
$this->assertTrue($isMailTlsRequired());
156154

157155
config()->set([
158-
'mail.mailers.smtp.scheme' => '',
156+
'mail.mailers.smtp.tls_required' => null,
159157
'mail.mailers.smtp.port' => 465,
160158
]);
161159

162-
$this->assertTrue($isMailTlsForcedEnabled());
160+
$this->assertTrue($isMailTlsRequired());
163161
}
164162

165163
/**

0 commit comments

Comments
 (0)