From 0a7ae2a139738ffd41c2923612d06ba474bbffa9 Mon Sep 17 00:00:00 2001 From: Lucas Marcouiller <45882981+Hystepik@users.noreply.github.com> Date: Fri, 9 Feb 2024 16:54:28 +0100 Subject: [PATCH] Fix MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE send protection (#28091) * Fix autocopy send protection * fix verification to replace mail in maillist --------- Co-authored-by: Hystepik --- htdocs/core/class/CMailFile.class.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index f77c48c45a0..82ef982fa9f 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -358,38 +358,44 @@ class CMailFile // Verify if $to, $addr_cc and addr_bcc have unwanted addresses if (getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO')) { //Verify for $to + $replaceto = false; $tabto = explode(",", $to); $listofemailstonotsendto = explode(',', getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO')); foreach ($tabto as $key => $addrto) { if (in_array($addrto, $listofemailstonotsendto)) { unset($tabto[$key]); + $replaceto = true; } } - if (empty($tabto) && !getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { + if ($replaceto && getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { $tabto[] = getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE'); } $to = implode(',', $tabto); //Verify for $addr_cc + $replacecc = false; $tabcc = explode(',', $addr_cc); foreach ($tabcc as $key => $cc) { if (in_array($cc, $tabcc)) { unset($tabcc[$key]); + $replacecc = true; } } - if (empty($addr_cc) && !getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { - $addr_cc[] = getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE'); + if ($replacecc && getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { + $tabcc[] = getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE'); } $addr_cc = implode(',', $tabcc); //Verify for $addr_bcc + $replacebcc= false; $tabbcc = explode(',', $addr_bcc); foreach ($tabbcc as $key => $bcc) { if (in_array($bcc, $tabbcc)) { unset($tabbcc[$key]); + $replacebcc = true; } } - if (empty($tabbcc) && !getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { + if ($replacebcc && getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE')) { $tabbcc[] = getDolGlobalString('MAIN_MAIL_FORCE_NOT_SENDING_TO_REPLACE'); } $addr_bcc = implode(',', $tabbcc);