]> gitweb.pimeys.fr Git - config-20-100.git/blobdiff - .procmailrc
[procmail] Tri des ML : nom-ml.domain.list*e*s.tld est géré aussi
[config-20-100.git] / .procmailrc
index 444c28a8c7ada18fbf7b5012a4c6ed140788b9e8..976a7f6b8f9370051791aa2e35c74e0e70b29b5b 100644 (file)
 #  * 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
 #   |    |-[$*+] machines_supprimees (puni !)
 #   |    |
 #   |    |-[+] ovh (Factures, Newsletters)
+#   |    |
+#   |    |-[+BT] paiements (rechargements des comptes impression via comnpay)
 #   |
 #   |
 #   |-[*+] Monitoring (une machine fait-elle de la merde ?)
 #   |    |     |-[+] new_activity
 #   |    |     |-[+] new_station
 #   |    |
+#   |    |-[+B] mac_prises (spoofing is being watched)
+#   |    |
 #   |    |-[*+] Monit (Un truc marche pas/remarche, un disque est plein,…)
 #   |    |     |
 #   |    |     |- <un dossier par serveur>
 #   |    |
 #   |    |-[+] Nagios (Comme Monit, mais en mieux/moins bien/différent)
 #   |    |     |
-#   |    |     |- <un dossier pour tousles switchs et un dossier par serveur>
+#   |    |     |- <un dossier pour tous les switchs, un pour toutes les bornes, puis un dossier par serveur>
 #   |    |
 #   |    |-[+B] Stats-upload (Qui a uplodé ?)
 #   |
 #   |    |     |     |- <triés selon les cronjob souvent rencontrés listés dans le fichier cron.folders>
 #   |    |     |
 #   |    |     |-[+] 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 !)
 #   |    |     |
 #   |
 #   |-[$*+B] Technique (les discussions et les trucs reliés)
 #        |
-#        |-[$*+] Cablages (Il faut aller brancher un truc)
+#        |-[*] Apprentis
 #        |
 #        |-[*+] Freebox (Vous avez un message vocal)
 #        |
 #        |-[+] 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"
@@ -312,10 +299,12 @@ MONITORINGDIR="${CRANSDIR}.Monitoring"
 MONITDIR="${MONITORINGDIR}.Monit"
 NAGIOSDIR="${MONITORINGDIR}.Nagios"
 NAGIOSSWITCHSDIR="${NAGIOSDIR}.0-switchs"
+NAGIOSBORNESDIR="${NAGIOSDIR}.1-bornes"
 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
@@ -335,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)
@@ -371,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"
@@ -400,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                 ##
@@ -471,14 +484,19 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH"
 :0
 * ^(From: nagios@crans\.org|User-Agent:.*nagios)
 {
-  # Tous les switchs vont dans le dossier ${NAGIOSSWITCH}
+  # Tous les switchs vont dans le dossier ${NAGIOSSWITCHSDIR}
   :0
-  * ^Subject:.*Alert: bat[^/]+-
+  * ^Subject:.*[A-Z]+ - (bat[a-z]-[0-9]+|backbone|minigiga)\.
   ${NAGIOSSWITCHSDIR}/
   
+  # Toutes les bornes vont dans le dossier ${NAGIOSBORNESDIR}
+  :0
+  * ^Subject:.* [A-Z]+ - [a-z0-9](-*[a-z0-9]+)*\.wifi\.crans\.org
+  ${NAGIOSBORNESDIR}/
+  
   # Chaque serveur a son dossier
   :0
-  * ^Subject:.*Alert: \/[^/\.]+
+  * ^Subject:.* [A-Z]+ - \/[a-z0-9](-*[a-z0-9]+)*
   ${NAGIOSDIR}.${MATCH}/
   
   # Si l'envie prenait à Nagios de raconter un peu plus sa vie
@@ -497,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}/
@@ -649,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
@@ -666,11 +684,6 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH"
     ${DARCSDIR}/
   }
   
-  # Tracker
-  :0
-  * ^X-Mailer:.*Redmine
-  ${TRACKERDIR}/
-  
   # Messages sur la Freebox
   :0
   * ^From: telephonie\.freebox@(mevo\.)?freetelecom\.fr
@@ -699,19 +712,28 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH"
 {
   # Statistiques d'upload
   :0
-  * ^X-Mailer: /usr/scripts/surveillance/statistiques.py
+  * XMAILER ?? /usr/scripts/surveillance/statistiques2.py
   ${STATUPLOADDIR}/
   
+  # Résumé quotidien des correspondances mac_prises
+  :0
+  * XMAILER ?? /usr/scripts/surveillance/mac_prises/mac_prise_analyzer.py
+  ${MACPRISESDIR}/
+  
+  # Notifications de bridage pour upload
   :0
-  * ^Subject:.*fois.*en un mois
-  ${MULTIDECODIR}/
+  * 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
@@ -721,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}/
 
 
 #################################################################
@@ -786,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                 ##
@@ -812,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/<//;s/>//'`
+  ML=`echo "${LISTID}" | sed 's/.*<\([^<>]\+\)>$/\1/'`
   
   #################################################################
   ##              Gestion des mailing-listes Cr@ns               ##
@@ -863,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)         ##
@@ -899,7 +913,7 @@ ${CABLAGEDIR}/
     
     # MLs BDL
     :0
-    * ? echo "${ML}" | egrep "(bdl|interludes)"
+    * ? echo "${ML}" | egrep "(bdl|interludes|kwei)"
     ${MLBDLDIR}.${ML_}/
     
     # MLs BDS
@@ -907,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)"
@@ -936,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              ##
   #################################################################
@@ -993,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"