bonjour,
solution plutôt orientée client utilisateur final ( pourquoi ce topic est dans la rubrique SERVEURS ?" )
#
liste_blanche
RFC IMAP 3501 SEARCH NOT OR OR OR foo bar bis dam
#pseudo code
NOT (foo OR bar OR bis OR dam); !(foo|bar|bis|dam)
imapsync avec host1=host2 (mode filtrage) + cron
dat=$(env LANG=C LC_ALL=C date +%d-%b-%Y -d yesterday); # today, yesterday, "5 days ago", "2 months ago", "last week", "last month"
imapsync --usecache --nolog --no-modulesversion --nocheckselectable --nofoldersizes --nofoldersizesatend\
--host1 localhost --ssl1 --user1 toto@domaine.fr --password1 "${amon[toto@domaine.fr]}" --authmech1 CRAM-MD5\
--host2 localhost --ssl2 --user2 toto@domaine.fr --password2 "${amon[toto@domaine.fr]}" --authmech2 CRAM-MD5\
--search1 "SENTSINCE $dat UNSEEN NOT OR OR OR FROM @domaine.fr FROM @gmail.com HEADER Return-Path tata@sfr.fr HEADER Return-Path @foo.fr"\
--folder INBOX --useheader 'Message-ID' --regextrans2 "s/.*/quarantaine/" --delete1
les messages sélectionnes sont déplacés de INBOX à "quarantaine"
si --delete1 est supprimé, ils sont copiés.
à partir des exports de carnets d'adresses thunderbird, il faut juste récupérer les adresses email que l'on veut ( ou juste les domaines )
gawk -F, 'NR>1 {print $5}' *.csv | sort | uniq
# juste les domaines
awk -F, 'NR>1 {sub(/^.*@/,"",$5); print "@"$5}' *.csv |sort | uniq > ~/scripts/liste_blanche.txt
pseudo template des OR
mapfile -t email <~/scripts/liste_blanche.txt
for e in "${!email[@]}"; do email["$e"]="FROM ${email[$e]}"; echo "${email[$e]}"; done
tag="NOT"; for ((i=2;i<=${#email[@]};i++)); do tag="${tag} OR"; done; echo "${tag} ${email[@]}"
pour SERVEURS, il y a d'autres solutions.