From e600985404457be073c7df17c5927967121738d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sun, 9 Nov 2025 17:07:34 +0100 Subject: [PATCH] =?UTF-8?q?gestion=20de=20liste=20de=20domaine=20ou=20de?= =?UTF-8?q?=20m=C3=A9l=20qui=20ne=20doivent=20par=20=C3=AAtre=20d=C3=A9pol?= =?UTF-8?q?luer=20en=20emission=20ou=20r=C3=A9ception.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bash/filter.sh | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/bash/filter.sh b/src/bash/filter.sh index d393103..c3c31d4 100644 --- a/src/bash/filter.sh +++ b/src/bash/filter.sh @@ -72,9 +72,13 @@ MAX_FINAL_SIZE=2097152 # 2Mi ARCHIVE_TITLE="archive_content" ARCHIVE_MIME="text/kaz_email_archive" -FILE_SKIP_DOMAINS="config/file_domaines_non_depollues.txt" +# skip_sender_domaine +FILE_DOMAINS_TO_SKIP_SRC="config/domaine_to_skip_src.txt" +# skip_destination_domaine +FILE_DOMAINS_TO_SKIP_DST="config/domaine_to_skip_dst.txt" #on enlève les commentaires et les lignes vides -SKIP_DOMAINS="$(sed 's:#.*$::g' 's/[[:blank:]]//g' "${FILE_SKIP_DOMAINS}" 2>/dev/null)" +SKIP_DOMAINS_SRC="$(sed 's:#.*$::g' 's/[[:blank:]]//g' "${FILE_DOMAINS_TO_SKIP_SRC}" 2>/dev/null)" +SKIP_DOMAINS_DST="$(sed 's:#.*$::g' 's/[[:blank:]]//g' "${FILE_DOMAINS_TO_SKIP_DST}" 2>/dev/null)" KEEP_FAILED=true DEBUG=true @@ -141,18 +145,19 @@ curlJirafeauSend () { echo "${OUTPUT}" } -# Définir une fonction pour vérifier si le domaine d'un email est dans la liste SKIP_DOMAINS -function check_skip_domains() { +# Définir une fonction pour vérifier si le domaine d'un destinataire est dans la liste à ne pas dépolluer +function check_domains() { local SKIP_DOMAINS="$1" - local LIST_EMAILS="$2" + local LIST_TO_TEST="$2" - for email in ${LIST_EMAILS}; do + for email_tst in ${LIST_TO_TEST}; do # Extraire le domaine de l'email (partie après le "@") - local domain="${email##*@}" + # pour plus de précision on peut sauter ".gouv.fr" ou "martin@pref.gouv.fr" + # dst="${dst##*@}" for domain in ${SKIP_DOMAINS}; do - # vérification si le domaine est dans la liste des domaines à sauter - if [[ " ${email} " =~ "${domain} " ]] ; then + # vérification si le candidat est dans la liste des domaines à sauter + if [[ " ${email_tst} " =~ "${domain} " ]] ; then echo "yes" return fi @@ -254,8 +259,14 @@ if [ "${MODE}" = "none" ]; then fi -if [ "$(check_skip_domains "${SKIP_DOMAINS}" "${LIST_DST_EMAILS}")" = "yes" ]; then - LOG_FIC " - ${GREEN}send without change (skip domain)${NC}" +if [ "$(check_domains "${SKIP_DOMAINS_SRC}" "${MAIL_SOURCE}")" = "yes" ]; then + LOG_FIC " - ${GREEN}send without change (skip sender domain)${NC}" + ${SENDMAIL} "$@" < "${INSPECT_DIR}/in.$$" + quitFilter 0 +fi + +if [ "$(check_domains "${SKIP_DOMAINS_DST}" "${LIST_DST_EMAILS}")" = "yes" ]; then + LOG_FIC " - ${GREEN}send without change (skip destination domain)${NC}" ${SENDMAIL} "$@" < "${INSPECT_DIR}/in.$$" quitFilter 0 fi