Added ability to apply non-strict SSL email transportation (v1.14)

This commit is contained in:
Mark Oudsen 2021-03-01 19:51:11 +01:00
parent db81193e17
commit 995fdf0b68
2 changed files with 31 additions and 6 deletions

View File

@ -15,5 +15,6 @@
"mail_from": "sender@domain.com", "mail_from": "sender@domain.com",
"smtp_server": "localhost", "smtp_server": "localhost",
"smtp_port": 25, "smtp_port": 25,
"smtp_transport": "none" "smtp_transport": "none",
"smtp_strict": "yes"
} }

View File

@ -14,6 +14,7 @@
// 1.11 2021/02/28 - Mark Oudsen - Bugfixes // 1.11 2021/02/28 - Mark Oudsen - Bugfixes
// 1.12 2021/03/01 - Mark Oudsen - Bugfixes - Adding mail server configuration via config.json // 1.12 2021/03/01 - Mark Oudsen - Bugfixes - Adding mail server configuration via config.json
// 1.13 2021/03/01 - Mark Oudsen - Added smtp options to encrypt none,ssl,tls // 1.13 2021/03/01 - Mark Oudsen - Added smtp options to encrypt none,ssl,tls
// 1.14 2021/03/01 - Mark Oudsen - Added smtp strict certificates yes|no via config.json
// ------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------
// //
// (C) M.J.Oudsen, mark.oudsen@puzzl.nl // (C) M.J.Oudsen, mark.oudsen@puzzl.nl
@ -22,9 +23,6 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
// !!! NOTE: configure the script before usage !!!
// Sections are marked [CONFIGURE] across the script
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
@ -39,7 +37,7 @@
// CONSTANTS // CONSTANTS
$cVersion = 'v1.12'; $cVersion = 'v1.14';
$cCRLF = chr(10).chr(13); $cCRLF = chr(10).chr(13);
$maskDateTime = 'Y-m-d H:i:s'; $maskDateTime = 'Y-m-d H:i:s';
@ -55,7 +53,7 @@
// -- swiftmailer/swiftmailer https://swiftmailer.symfony.com/docs/introduction.html // -- swiftmailer/swiftmailer https://swiftmailer.symfony.com/docs/introduction.html
// -- twig/twig https://twig.symfony.com/doc/3.x/templates.html // -- twig/twig https://twig.symfony.com/doc/3.x/templates.html
// [CONFIGURE] Change only required if you decide to use a local central library, otherwise leave as is // Change only required if you decide to use a local/central library, otherwise leave as is
include(getcwd().'/vendor/autoload.php'); include(getcwd().'/vendor/autoload.php');
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -374,6 +372,9 @@
if ((isset($config['smtp_transport'])) && ($config['smtp_transport']=='tls')) { $p_smtp_transport = 'tls'; } if ((isset($config['smtp_transport'])) && ($config['smtp_transport']=='tls')) { $p_smtp_transport = 'tls'; }
if ((isset($config['smtp_transport'])) && ($config['smtp_transport']=='ssl')) { $p_smtp_transport = 'ssl'; } if ((isset($config['smtp_transport'])) && ($config['smtp_transport']=='ssl')) { $p_smtp_transport = 'ssl'; }
$p_smtp_strict = 'yes';
if ((isset($config['smtp_strict'])) && ($config['smtp_strict']=='no')) { $p_smtp_strict = 'no'; }
// --- CONFIGURATION --- // --- CONFIGURATION ---
// Script related settings // Script related settings
@ -695,6 +696,29 @@
if (($p_smtp_transport=='tls') || ($p_smtp_transport=='ssl')) if (($p_smtp_transport=='tls') || ($p_smtp_transport=='ssl'))
{ {
$transport = (new Swift_SmtpTransport($p_smtp_server, $p_smtp_port, $p_smtp_transport)); $transport = (new Swift_SmtpTransport($p_smtp_server, $p_smtp_port, $p_smtp_transport));
if ($p_smtp_strict=='no')
{
if ($transport instanceof \Swift_Transport_EsmtpTransport)
{
$transport->setStreamOptions([
'ssl' => ['allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false]
]);
}
}
if ($transport instanceof \Swift_Transport_EsmtpTransport)
{
$transport->setStreamOptions([
'ssl' => ['allow_self_signed' => false,
'verify_peer' => true,
'verify_peer_name' => true]
]);
}
else
{
}
} }
else else
{ {