diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index a520a44e467..7f6f7f88cc3 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -265,10 +265,16 @@ if (empty($reshook)) { } //$substitutionisok=true; - $moreinheader = ''; complete_substitutions_array($substitutionarray, $langs); $newsubject = make_substitutions($subject, $substitutionarray); - $newmessage = make_substitutions($message, $substitutionarray, null, 0, $moreinheader); + $newmessage = make_substitutions($message, $substitutionarray, null, 0); + + $moreinheader = ''; + if (preg_match('/__UNSUBSCRIBE__/', $message)) { + $moreinheader = make_substitutions('__UNSUBSCRIBE__', $substitutionarray); + $moreinheader = explode('"', $moreinheader); + $moreinheader = "List-Unsubscribe: <".$moreinheader[1].">\n"; + } $arr_file = array(); $arr_mime = array(); diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d058111973a..222dea0ead7 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -7212,7 +7212,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, * @return string Output string after substitutions * @see complete_substitutions_array(), getCommonSubstitutionArray() */ -function make_substitutions($text, $substitutionarray, $outputlangs = null, $converttextinhtmlifnecessary = 0, &$moreinheader = null) +function make_substitutions($text, $substitutionarray, $outputlangs = null, $converttextinhtmlifnecessary = 0) { global $conf, $langs; @@ -7317,10 +7317,6 @@ function make_substitutions($text, $substitutionarray, $outputlangs = null, $con } $text = str_replace("$key", "$value", $text); // We must keep the " to work when value is 123.5 for example } - if ($key == '__UNSUBSCRIBE__' && (isset($moreinheader))) { - $tmptext = explode('"', $text); - $moreinheader = "List-Unsubscribe: <".$tmptext[1].">\n"; - } } return $text; diff --git a/scripts/emailings/mailing-send.php b/scripts/emailings/mailing-send.php index 44b8ade0c62..b0975c93397 100755 --- a/scripts/emailings/mailing-send.php +++ b/scripts/emailings/mailing-send.php @@ -268,6 +268,13 @@ if ($resql) { $substitutionisok = true; + $moreinheader = ''; + if (preg_match('/__UNSUBSCRIBE__/', $message)) { + $moreinheader = make_substitutions('__UNSUBSCRIBE__', $substitutionarray); + $moreinheader = explode('"', $moreinheader); + $moreinheader = "List-Unsubscribe: <".$moreinheader[1].">\n"; + } + $arr_file = array(); $arr_mime = array(); $arr_name = array(); @@ -284,7 +291,7 @@ if ($resql) { } // Fabrication du mail $trackid = 'emailing-'.$obj->fk_mailing.'-'.$obj->rowid; - $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, '', 'emailing'); + $mail = new CMailFile($newsubject, $sendto, $from, $newmessage, $arr_file, $arr_mime, $arr_name, '', '', 0, $msgishtml, $errorsto, $arr_css, $trackid, $moreinheader, 'emailing'); if ($mail->error) { $res = 0;