fix: gérer tous les cas de figure de configuration de destinataires

This commit is contained in:
cy_altern 2023-01-04 15:10:12 +01:00
parent 36f0de4afe
commit da72c4d7c7

View file

@ -149,15 +149,8 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
} }
} }
} }
if (!count($destinataires)) {
$email_webmaster = lire_config('email_webmaster');
if (strlen($email_webmaster)) {
$destinataires[] = $email_webmaster;
}
}
$test_mail = true; $test_mail = true;
if (count($destinataires)) {
$GLOBALS['forcer_lang'] = false; $GLOBALS['forcer_lang'] = false;
$langue_defaut = lire_config('langue_site'); $langue_defaut = lire_config('langue_site');
include_spip('classes/facteur'); include_spip('classes/facteur');
@ -172,7 +165,6 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
$langues[] = lire_config('langue_site'); $langues[] = lire_config('langue_site');
} }
if (!empty($langues)) {
// trier les destinataires par langue et envoyer un mail par langue // trier les destinataires par langue et envoyer un mail par langue
foreach ($langues as $langue) { foreach ($langues as $langue) {
$Tdest_langue = []; $Tdest_langue = [];
@ -180,9 +172,22 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
if ($dest['lang'] == '') { if ($dest['lang'] == '') {
$dest['lang'] = $langue_defaut; $dest['lang'] = $langue_defaut;
} }
if ($dest['lang'] == $langue) if ($dest['lang'] == $langue) {
$Tdest_langue[] = $dest['email']; $Tdest_langue[] = $dest['email'];
} }
}
// pour la langue du site, si pas de destinataire prendre le mail du webmestre
if ($langue === $langue_defaut and !count($dest_langues)) {
if (!count($destinataires)) {
$email_webmaster = lire_config('email_webmaster');
if (strlen($email_webmaster)) {
$Tdest_langue[] = $email_webmaster;
}
} else {
$Tdest_langue = $destinataires;
}
}
// envoi du mail dans cette langue // envoi du mail dans cette langue
$html = recuperer_fond('modeles/gamucontact_message', ['id_message' => $id_message, 'lang' => $langue]); $html = recuperer_fond('modeles/gamucontact_message', ['id_message' => $id_message, 'lang' => $langue]);
$texte = facteur_mail_html2text($html); $texte = facteur_mail_html2text($html);
@ -193,8 +198,6 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
$envoyer_mail = charger_fonction('envoyer_mail', 'inc'); $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
$test_mail = $envoyer_mail($Tdest_langue, _request('objet'), $corps, '', 'X-Originating-IP: '.$GLOBALS['ip']); $test_mail = $envoyer_mail($Tdest_langue, _request('objet'), $corps, '', 'X-Originating-IP: '.$GLOBALS['ip']);
} }
}
}
if (intval($id_message) and $test_mail) { if (intval($id_message) and $test_mail) {
$retour['message_ok'] = _T('gamucontact:formulaire_bien_envoye'); $retour['message_ok'] = _T('gamucontact:formulaire_bien_envoye');