FIX #yogosha13687

This commit is contained in:
Laurent Destailleur 2022-11-28 15:37:38 +01:00
parent 117a0b4971
commit 75de251402
2 changed files with 21 additions and 5 deletions

View File

@ -322,11 +322,11 @@ class CMailFile
} }
$this->subject = $subject; $this->subject = $subject;
$this->addr_to = $to; $this->addr_to = dol_sanitizeEmail($to);
$this->addr_from = $from; $this->addr_from = dol_sanitizeEmail($from);
$this->msg = $msg; $this->msg = $msg;
$this->addr_cc = $addr_cc; $this->addr_cc = dol_sanitizeEmail($addr_cc);
$this->addr_bcc = $addr_bcc; $this->addr_bcc = dol_sanitizeEmail($addr_bcc);
$this->deliveryreceipt = $deliveryreceipt; $this->deliveryreceipt = $deliveryreceipt;
if (empty($replyto)) { if (empty($replyto)) {
$replyto = $from; $replyto = $from;
@ -341,7 +341,7 @@ class CMailFile
$this->cid_list = $cid_list; $this->cid_list = $cid_list;
if (!empty($conf->global->MAIN_MAIL_FORCE_SENDTO)) { if (!empty($conf->global->MAIN_MAIL_FORCE_SENDTO)) {
$this->addr_to = $conf->global->MAIN_MAIL_FORCE_SENDTO; $this->addr_to = dol_sanitizeEmail($conf->global->MAIN_MAIL_FORCE_SENDTO);
$this->addr_cc = ''; $this->addr_cc = '';
$this->addr_bcc = ''; $this->addr_bcc = '';
} }

View File

@ -1314,6 +1314,22 @@ function dol_sanitizeUrl($stringtoclean, $type = 1)
return $stringtoclean; return $stringtoclean;
} }
/**
* Clean a string to use it as an Email.
*
* @param string $stringtoclean String to clean. Example 'abc@mycompany.com <My name>'
* @return string Escaped string.
*/
function dol_sanitizeEmail($stringtoclean)
{
do {
$oldstringtoclean = $stringtoclean;
$stringtoclean = str_ireplace(array('"', ':', '[', ']',"\n", "\r", '\\', '\/'), '', $stringtoclean);
} while ($oldstringtoclean != $stringtoclean);
return $stringtoclean;
}
/** /**
* Clean a string from all accent characters to be used as ref, login or by dol_sanitizeFileName * Clean a string from all accent characters to be used as ref, login or by dol_sanitizeFileName
* *