X-Git-Url: http://gitweb.pimeys.fr/?p=config-20-100.git;a=blobdiff_plain;f=.procmailrc;h=976a7f6b8f9370051791aa2e35c74e0e70b29b5b;hp=30bac2f818c6dc9f8606381c52e073d72c84c9f7;hb=HEAD;hpb=5e5951b021933009259c3c1e092d70f04f1c51f3 diff --git a/.procmailrc b/.procmailrc index 30bac2f..976a7f6 100644 --- a/.procmailrc +++ b/.procmailrc @@ -43,13 +43,6 @@ # * Le troisième, custom.final.rules est appliqué tout à la fin, il peut par # exemple servir à définir un dossier par défaut autre que .INBOX -# Attention, certaines règles (pour l'instant commentées par #~#) -# font appel à des scripts. -# Pour qu'elles fonctionnent correctement, il faut que vous -# possédiez les scripts correspondant et que vous adaptiez -# la partie "Scripting" des variables de configuration. -# (cf https://wiki.crans.org/VieCrans/FichiersConfiguration#scripting) - ################################################################################ ##### Commentaires ##### @@ -77,7 +70,7 @@ # | | |-[B] bureau # | | |-[B] crous-crans # | | |-[+B] disconnect -# | | |-[$*+] impression (sans modif_solde, munin, print_status) +# | | |-[$*+] impression (sans modif_solde, munin) # | | |-[$*+] respbats (bot-free) # | | |-[+B] spoof # | | |-[T] trésorier @@ -108,6 +101,8 @@ # | |-[$*+] machines_supprimees (puni !) # | | # | |-[+] ovh (Factures, Newsletters) +# | | +# | |-[+BT] paiements (rechargements des comptes impression via comnpay) # | # | # |-[*+] Monitoring (une machine fait-elle de la merde ?) @@ -119,6 +114,8 @@ # | | |-[+] new_activity # | | |-[+] new_station # | | +# | |-[+B] mac_prises (spoofing is being watched) +# | | # | |-[*+] Monit (Un truc marche pas/remarche, un disque est plein,…) # | | | # | | |- @@ -154,8 +151,6 @@ # | | | |- # | | | # | | |-[+] gest_crans (Rapports de bugs envoyés lors d'un crash de gest_crans) -# | | | -# | | |-[$] printer_watch (L'imprimante a bourré/n'a plus d'encre) # | | # | |-[*+] 3-Argh (Il faut vite faire quelque chose !) # | | | @@ -191,7 +186,7 @@ # | # |-[$*+B] Technique (les discussions et les trucs reliés) # | -# |-[$*+] Cablages (Il faut aller brancher un truc) +# |-[*] Apprentis # | # |-[*+] Freebox (Vous avez un message vocal) # | @@ -200,8 +195,6 @@ # |-[+] root # | # |-[*+] roots -# | -# |-[*+B] tracker (Todolist) # # Federez (Les mails concernant l'asso FedeRez sont dans un dossier à part) # | @@ -248,11 +241,6 @@ LOGFILE="${PROCMAILDIR}/logs/procmail.log" ### Scripting # Shell à utiliser pour exécuter des commandes SHELL="/bin/bash" -## Scripts -# Dossier où sont rangés les scripts -SCRIPTSFOLDER="${HOME}/scripts/crans_toolbox/" -# Scripts pour décoder les headers MIME -DECODEHEADERSCRIPT="${SCRIPTSFOLDER}decode_header.pl" ################################################################# @@ -270,14 +258,12 @@ SPAMDIR=".Spam" # Spam reçu sur (usenet|news)@(crans.org|crans.ens-cachan.fr) SPAMINNDIR="${SPAMDIR}.usenet" - ### Dossiers pour les MLs qui ne sont pas catchées par une autre règle ## Dossier racine MLDIR=".ML" ## Dossier pour ranger les rappels de mots de passes envoyés par Mailman RAPPELMDPDIR="${MLDIR}.rappels_mdp" - ### Dossiers pour les MLs du campus MLCAMPUSDIR="${MLDIR}.Campus" MLBDEDIR="${MLCAMPUSDIR}.BDE" @@ -289,6 +275,7 @@ MLBDSDIR="${MLCAMPUSDIR}.BDS" MLSDADIR="${MLCAMPUSDIR}.SDA" MLGALADIR="${MLCAMPUSDIR}.Gala" MLSONODIR="${MLCAMPUSDIR}.SoNo" +MLWEIDIR="${MLCAMPUSDIR}.WEI" ## Dossier où atterrira une ML non-répertoriée MLFAILSUFFIX="Fail" @@ -317,6 +304,7 @@ ARPWATCHDIR="${MONITORINGDIR}.Arpwatch" MUNINDIR="${MONITORINGDIR}.Munin" MUNINIMPRESSIONDIR="${MUNINDIR}.Imprimante" STATUPLOADDIR="${MONITORINGDIR}.Stats-upload" +MACPRISESDIR="${MONITORINGDIR}.Mac_prises" ## Dossiers pour le mails concernant des "problèmes" # Racine @@ -336,11 +324,9 @@ INTRANET2DIR="${SOFTDIR}.Intranet2" INTRANET1DIR="${SOFTDIR}.intranet-bugreport" CRONDIR="${WILDDIR}.cron" GESTCRANSDIR="${WILDDIR}.gest_crans" -PRINTERWATCHDIR="${WILDDIR}.printer_watch" NOLSDIR="${ARGHDIR}.nols" PULSARDIR="${ARGHDIR}.pulsar" MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman" -PRINTSTATUSDIR="${HUMANPROBLEMSDIR}.print_status" MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco" ## Dossier de surveillance (= surveillance d'actions humaines) @@ -372,22 +358,24 @@ DARCSDIR="${INFORMATIONDIR}.darcs" BCFG2DIR="${INFORMATIONDIR}.bcfg2" # Statistiques des serveurs de news INNDIR="${INFORMATIONDIR}.inn" +# Notifications de bridage pour upload +DECODIR="${INFORMATIONDIR}.deconnexion" +# Résumés des rehargements impression comnpay +PAIEMENTSDIR="${INFORMATIONDIR}.paiements" ## Dossier de discussion techniques # Racine TECHNIQUEDIR="${CRANSDIR}.Technique" # Mails de roots@ non catchées avant ROOTSDIR="${TECHNIQUEDIR}.roots" -# Mails de câblages demandé/effectué -CABLAGEDIR="${TECHNIQUEDIR}.Cablages" -# Mails du tracker -TRACKERDIR="${TECHNIQUEDIR}.Tracker" # Mails de la ML nounou NOUNOUDIR="${TECHNIQUEDIR}.Nounou" # Messages laissés sur la Freebox FREEBOXDIR="${TECHNIQUEDIR}.Freebox" # Dossier où atterriront les mails de root@ non triés ROOTDEFAULTDIR="${TECHNIQUEDIR}.root" +# Mails de la ML apprentis +APPRENTISDIR="${TECHNIQUEDIR}.Apprentis" ### Dossier racine pour Federez FEDEREZDIR=".FedeRez" @@ -401,18 +389,42 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" +################################################################################ +##### Preprocessing ##### +################################################################################ + +# On décode les champs sur lesquels ont pourrait avoir besoin de matcher +# plus tard la version décodée. On stocke les versions décodées +# dans des variables. +# "formail -cXHeader" récupère le champ Header (-X) en enlevant les \n (-c) +# si le champ fait plusieurs lignes +:0 +* ^X-Mailer: +XMAILER=| formail -cXX-Mailer: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))' + +:0 +* ^Subject: +SUBJECT=| formail -cXSubject: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))' + +:0 +* ^List-ID: +LISTID=| formail -cXList-ID: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))' +# Pour faire fonctionner correctement le tri des mails envoyés par Discourse, +# Décommenter le INCLUDERC suivant +INCLUDERC="${CONFIGDIR}/discourse.preprocessing" + ################################################################################ ##### Règles ##### ################################################################################ -#~# # Patch pour traiter les mails qui ont été -#~# # reçus avant le 30/06/13, car certaines règles de tri du .procmailrc -#~# # n'étaient pas encore valables à l'époque. -#~# # très utile si on veut retrier tous ses mails -#~# INCLUDERC="${CONFIGDIR}/retrocompatibility_patch.rules" +# Patch pour traiter les mails qui ont été +# reçus avant le 30/06/13, car certaines règles de tri du .procmailrc +# n'étaient pas encore valables à l'époque. +# très utile si on veut retrier tous ses mails +INCLUDERC="${CONFIGDIR}/retrocompatibility_patch.rules" -#~# # Fichier de règles prioritaires à personnaliser -#~# INCLUDERC="${CONFIGDIR}/custom.high.rules" +# Fichier de règles prioritaires à personnaliser +INCLUDERC="${CONFIGDIR}/custom.high.rules" ################################################################# ## Gestion des mails d'Arpwatch ## @@ -503,9 +515,9 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" * ^To:.*(roots?|postgres|www-data|list)@crans\.org * ^(X-Cron-Env|From: Anacron) { - #~# # Par défaut, on ne trie pas les mails de Cron, pensez à décommenter - #~# # le INCLUDERC (et à copier le fichier complémentaire) pour les trier - #~# INCLUDERC=${CONFIGDIR}/cron.rules + # Par défaut, on ne trie pas les mails de Cron, pensez à décommenter + # le INCLUDERC (et à copier le fichier complémentaire) pour les trier + INCLUDERC=${CONFIGDIR}/cron.rules :0 ${CRONDIR}/ @@ -655,7 +667,7 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" * ^X-GitInfo { :0 - * ^X-Mailer: /usr/scripts/utils/git-whatsnew + * XMAILER ?? /usr/scripts/utils/git-whatsnew ${GITDIR}.whatsnew/ :0 @@ -672,11 +684,6 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" ${DARCSDIR}/ } - # Tracker - :0 - * ^X-Mailer:.*Redmine - ${TRACKERDIR}/ - # Messages sur la Freebox :0 * ^From: telephonie\.freebox@(mevo\.)?freetelecom\.fr @@ -705,19 +712,28 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" { # Statistiques d'upload :0 - * ^X-Mailer: /usr/scripts/surveillance/statistiques2.py + * XMAILER ?? /usr/scripts/surveillance/statistiques2.py ${STATUPLOADDIR}/ + # Résumé quotidien des correspondances mac_prises :0 - * ^Subject:.*fois.*en un mois - ${MULTIDECODIR}/ + * XMAILER ?? /usr/scripts/surveillance/mac_prises/mac_prise_analyzer.py + ${MACPRISESDIR}/ + + # Notifications de bridage pour upload + :0 + * XMAILER ?? /usr/scripts/surveillance/deconnexion2.py + { + # Récidivistes + :0 + * SUBJECT ?? fois ce mois + ${MULTIDECODIR}/ + + :0 + ${DECODIR}/ + } } -# Câblage demandé/effectué -:0 -* ^X-Crans-Intranet: cablage -${CABLAGEDIR}/ - # Sur la ML impression@ :0 * ^List-Id:.*impression\.lists\.crans\.org @@ -727,39 +743,27 @@ ${CABLAGEDIR}/ * ^X-Mailer: modif_solde ${LDAPSOLDEDIR}/ - # Informations de print_status - :0 - * ^X-Mailer: /usr/scripts/impression/print_status.py - ${PRINTSTATUSDIR}/ - # Munin stock papier et toners :0 * ^From: munin@crans\.org ${MUNINIMPRESSIONDIR}/ - - # L'imprimante fait des siennes - :0 - * ^X-Mailer: /usr/scripts/impression/printer_watch.py - ${PRINTERWATCHDIR}/ } # Sur la ML respbats@ -#~# # L'ancienne version de ce filtre ne fonctionne plus car les headers -#~# # de ces mails sont maintenant correctement encodé. -#~# # C'est bien pour le respect des RFC, mais c'est un peu pain in the ass -#~# # p our le trier avec procmail, donc on besoin d'un script -#~# # Ne pas décommenter si vous n'avez pas le script associé. -#~# # (cf https://wiki.crans.org/VieCrans/FichiersConfiguration#scripting) -#~# :0 -#~# * ^List-Id:.*respbats\.lists\.crans\.org -#~# * ^X-Mailer:\/.* -#~# { -#~# # Machines supprimées pour chambre invalide -#~# :0 -#~# * ? echo "${MATCH}" | ${DECODEHEADERSCRIPT} | grep /usr/scripts/gestion/chambres_vides.py -#~# ${DELETEDMACHINES}/ -#~# } +:0 +* ^List-Id:.*respbats\.lists\.crans\.org +{ + # Machines supprimées pour chambre invalide + :0 + * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py + ${DELETEDMACHINES}/ +} + +# La ML paiements@ +:0 +* ^List-Id:.*paiements\.lists\.crans\.org +${PAIEMENTSDIR}/ ################################################################# @@ -792,8 +796,8 @@ ${CABLAGEDIR}/ ################################################################# ## Inclusion des règles personnelles ## ################################################################# -#~# # Fichier de règles à personnaliser -#~# INCLUDERC="${CONFIGDIR}/custom.normal.rules" +# Fichier de règles à personnaliser +INCLUDERC="${CONFIGDIR}/custom.normal.rules" ################################################################# ## Gestion des mails de Mailman ## @@ -818,10 +822,9 @@ ${CABLAGEDIR}/ :0 # On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML -* ^List-Id:.*\/<[^<>]+>$ +* ^List-Id:.* { - ML=$MATCH - ML=`echo "${ML}" | sed 's///'` + ML=`echo "${LISTID}" | sed 's/.*<\([^<>]\+\)>$/\1/'` ################################################################# ## Gestion des mailing-listes Cr@ns ## @@ -869,6 +872,11 @@ ${CABLAGEDIR}/ :0 * ^List-Id:.*nounou\.lists\.crans\.org ${NOUNOUDIR}/ + + # La ML apprentis va dans le dossier Technique + :0 + * ^List-Id:.*apprentis\.lists\.crans\.org + ${APPRENTISDIR}/ ################################################################# ## Gestion des autres mailing-list (du campus) ## @@ -905,7 +913,7 @@ ${CABLAGEDIR}/ # MLs BDL :0 - * ? echo "${ML}" | egrep "(bdl|interludes)" + * ? echo "${ML}" | egrep "(bdl|interludes|kwei)" ${MLBDLDIR}.${ML_}/ # MLs BDS @@ -913,6 +921,11 @@ ${CABLAGEDIR}/ * ? echo "${ML}" | egrep "bds" ${MLBDSDIR}.${ML_}/ + # MLs WEI + :0 + * ^List-Id:.*wei\.lists\.crans\.org + ${MLWEIDIR}.${ML_}/ + # MLs Gala :0 * ? echo "${ML}" | egrep "(gala|geec)" @@ -942,6 +955,13 @@ ${CABLAGEDIR}/ ${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/ } + # Décommenter pour activer le tri des mails envoyés par + # Discourse. Attention, penser à décommener également + # l'INCLUDERC de discourse.preprocessing + # et lire https://wiki.crans.org/VieCrans/FichiersConfiguration#rc.2Fdiscourse + # à propos de la remarque sur le module Perl à installer + INCLUDERC=${CONFIGDIR}/discourse.rules + ################################################################# ## Gestion des mailing-listes FedeRez ## ################################################################# @@ -999,10 +1019,10 @@ ${CABLAGEDIR}/ # du subdomain # On prend garde à ne pas créer un sous-dossier # si jamais le List-Id contient un . ou un espace - ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.lists\?$//;s/\(\.\| \)/_/g'` + ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.liste\?s\?$//;s/\(\.\| \)/_/g'` :0 ${MLDIR}.${DOMAIN_}.${ML_}/ } -#~# # Fichier de règles de faible priorité à personnaliser -#~# INCLUDERC="${CONFIGDIR}/custom.final.rules" +# Fichier de règles de faible priorité à personnaliser +INCLUDERC="${CONFIGDIR}/custom.final.rules"