From 2f04b4c5597c90e9cba0ce96e0c95b5b42f036e3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 6 Jul 2020 12:00:14 +0200 Subject: [PATCH] Update CMailFile.class.php --- htdocs/core/class/CMailFile.class.php | 30 ++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index 18c923ff944..8f751c8ada2 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -396,20 +396,22 @@ class CMailFile //$this->message->setFrom(array('john@doe.com' => 'John Doe')); if (! empty($from)) { try { - - // Prevent email spoofing for smtp server with a strict configuration - $regexp = '/([a-z0-9_\.\-\+])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i'; // This regular expression extracts all emails from a string - $emailMatchs = preg_match_all($regexp, $from, $adressEmailFrom); - $adressEmailFrom = reset($adressEmailFrom); - if($emailMatchs !== false - && $conf->global->MAIN_FORCE_DISABLE_MAIL_SPOOFING - && filter_var($conf->global->MAIN_MAIL_SMTPS_ID, FILTER_VALIDATE_EMAIL) - && $conf->global->MAIN_MAIL_SMTPS_ID !== $adressEmailFrom) - { - $result = $this->message->setFrom($conf->global->MAIN_MAIL_SMTPS_ID); - } - else - { + if (! empty($conf->global->MAIN_FORCE_DISABLE_MAIL_SPOOFING)) { + // Prevent email spoofing for smtp server with a strict configuration + $regexp = '/([a-z0-9_\.\-\+])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i'; // This regular expression extracts all emails from a string + $emailMatchs = preg_match_all($regexp, $from, $adressEmailFrom); + $adressEmailFrom = reset($adressEmailFrom); + if($emailMatchs !== false + && filter_var($conf->global->MAIN_MAIL_SMTPS_ID, FILTER_VALIDATE_EMAIL) + && $conf->global->MAIN_MAIL_SMTPS_ID !== $adressEmailFrom) + { + $result = $this->message->setFrom($conf->global->MAIN_MAIL_SMTPS_ID); + } + else + { + $result = $this->message->setFrom($this->getArrayAddress($from)); + } + } else { $result = $this->message->setFrom($this->getArrayAddress($from)); } } catch (Exception $e) {