Skip to content

Commit db11cfc

Browse files
authored
Expose SMTP TLS controls for local relays (#1244)
1 parent 3fff3ce commit db11cfc

5 files changed

Lines changed: 38 additions & 0 deletions

File tree

backend/.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ MAIL_PORT=1025
5050
MAIL_USERNAME=null
5151
MAIL_PASSWORD=null
5252
MAIL_ENCRYPTION=null
53+
MAIL_AUTO_TLS=true
54+
MAIL_VERIFY_PEER=true
5355
MAIL_FROM_ADDRESS="hello@example.com"
5456
MAIL_FROM_NAME="${APP_NAME}"
5557

backend/config/mail.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
'password' => env('MAIL_PASSWORD'),
4545
'timeout' => null,
4646
'local_domain' => env('MAIL_EHLO_DOMAIN'),
47+
'auto_tls' => env('MAIL_AUTO_TLS', true),
48+
'verify_peer' => env('MAIL_VERIFY_PEER', true),
4749
],
4850

4951
'ses' => [
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace Tests\Unit\Configuration;
4+
5+
use Illuminate\Mail\MailManager;
6+
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
7+
use Tests\TestCase;
8+
9+
class MailConfigurationTest extends TestCase
10+
{
11+
public function test_smtp_transport_can_disable_opportunistic_starttls(): void
12+
{
13+
config([
14+
'mail.mailers.smtp' => array_merge(config('mail.mailers.smtp'), [
15+
'auto_tls' => false,
16+
'verify_peer' => false,
17+
]),
18+
]);
19+
20+
/** @var MailManager $mailManager */
21+
$mailManager = app('mail.manager');
22+
23+
$transport = $mailManager->createSymfonyTransport(config('mail.mailers.smtp'));
24+
25+
$this->assertInstanceOf(EsmtpTransport::class, $transport);
26+
$this->assertFalse($transport->isAutoTls());
27+
$this->assertFalse($transport->getStream()->getStreamOptions()['ssl']['verify_peer']);
28+
$this->assertFalse($transport->getStream()->getStreamOptions()['ssl']['verify_peer_name']);
29+
}
30+
}

docker/all-in-one/.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ MAIL_PORT=1025
3434
MAIL_USERNAME=null
3535
MAIL_PASSWORD=null
3636
MAIL_ENCRYPTION=null
37+
MAIL_AUTO_TLS=true
38+
MAIL_VERIFY_PEER=true
3739
MAIL_FROM_ADDRESS=test@example.com
3840
MAIL_FROM_NAME="Hi Events"
3941

docker/all-in-one/docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ services:
3131
- MAIL_USERNAME=${MAIL_USERNAME}
3232
- MAIL_PASSWORD=${MAIL_PASSWORD}
3333
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
34+
- MAIL_AUTO_TLS=${MAIL_AUTO_TLS}
35+
- MAIL_VERIFY_PEER=${MAIL_VERIFY_PEER}
3436
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
3537
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
3638
- FILESYSTEM_PUBLIC_DISK=${FILESYSTEM_PUBLIC_DISK}

0 commit comments

Comments
 (0)