diff --git a/formulaires/gamucontact.php b/formulaires/gamucontact.php index 8979c6b..fff8b27 100644 --- a/formulaires/gamucontact.php +++ b/formulaires/gamucontact.php @@ -149,51 +149,54 @@ 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; - if (count($destinataires)) { - $GLOBALS['forcer_lang'] = false; - $langue_defaut = lire_config('langue_site'); - include_spip('classes/facteur'); + $GLOBALS['forcer_lang'] = false; + $langue_defaut = lire_config('langue_site'); + include_spip('classes/facteur'); - // récupérer les infos de langue des destinataires - $dest_langues = sql_allfetsel('id_auteur, lang, email', 'spip_auteurs', sql_in('email', $destinataires), 'email'); - // array avec les langues des destinataires - if (is_array($dest_langues) and count($dest_langues)) { - $langues = array_filter(array_unique(array_column($dest_langues, 'lang'))); - } - if(empty($langues)) { - $langues[] = lire_config('langue_site'); - } + // récupérer les infos de langue des destinataires + $dest_langues = sql_allfetsel('id_auteur, lang, email', 'spip_auteurs', sql_in('email', $destinataires), 'email'); + // array avec les langues des destinataires + if (is_array($dest_langues) and count($dest_langues)) { + $langues = array_filter(array_unique(array_column($dest_langues, 'lang'))); + } + if(empty($langues)) { + $langues[] = lire_config('langue_site'); + } - if (!empty($langues)) { - // trier les destinataires par langue et envoyer un mail par langue - foreach ($langues as $langue) { - $Tdest_langue = []; - foreach ($dest_langues as $dest) { - if ($dest['lang'] == '') { - $dest['lang'] = $langue_defaut; - } - if ($dest['lang'] == $langue) - $Tdest_langue[] = $dest['email']; - } - // envoi du mail dans cette langue - $html = recuperer_fond('modeles/gamucontact_message', ['id_message' => $id_message, 'lang' => $langue]); - $texte = facteur_mail_html2text($html); - $corps = array( - 'html' => $html, - 'texte' => $texte, - ); - $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); - $test_mail = $envoyer_mail($Tdest_langue, _request('objet'), $corps, '', 'X-Originating-IP: '.$GLOBALS['ip']); + // trier les destinataires par langue et envoyer un mail par langue + foreach ($langues as $langue) { + $Tdest_langue = []; + foreach ($dest_langues as $dest) { + if ($dest['lang'] == '') { + $dest['lang'] = $langue_defaut; + } + if ($dest['lang'] == $langue) { + $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 + $html = recuperer_fond('modeles/gamucontact_message', ['id_message' => $id_message, 'lang' => $langue]); + $texte = facteur_mail_html2text($html); + $corps = array( + 'html' => $html, + 'texte' => $texte, + ); + $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); + $test_mail = $envoyer_mail($Tdest_langue, _request('objet'), $corps, '', 'X-Originating-IP: '.$GLOBALS['ip']); } if (intval($id_message) and $test_mail) {