]> 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 ba6ce345b320bfa497b849d0da99adfa77c61241..976a7f6b8f9370051791aa2e35c74e0e70b29b5b 100644 (file)
@@ -1,7 +1,3 @@
-################################################################################
-###             Still being tested. Use at your own risks…                   ###
-################################################################################
-
 # .procmailrc générique mis à votre disposition
 # par les gentils membres actifs du Cr@ns
 # Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
 # Attention : le path par défaut des fichiers de logs est $HOME/.procmail/logs
 # Assurez-vous que le dossier en question existe avant d'utiliser ce .procmailrc
 
+#################################################################
+##                         DISCLAIMER                          ##
+#################################################################
+
+# Ce fichier est mis à votre disposition par des cranseux sans aucune garantie.
+# Nous sommes un certain nombre à l'utiliser nous-mêmes, souvent dans une version
+# légèrement modifiée.
+#  * Nous ne sommes pas responsables si vous perdez des mails ou si ils sont mal triés.
+#  * Pensez à copier également les autres fichiers si vous utilisez les include.
+#  * Vous pouvez rester à jour en trackant le dépôt git : http://git.crans.org/git/fichiers_configuration.git
+#    (on corrige des trucs et on rajoute parfois des nouveaux/meilleurs tris)
+
 #------------------------------------------------------------------------------
 # Ce fichier commence par une grosse section de commentaire qui donne un aperçu
 # de l'arborescence de dossiers qui sera obtenue en utilisant ce .procmailrc.
@@ -26,7 +34,7 @@
 # (pour l'instant commentés par #~#)
 # Ils doivent être tous les trois dans ${CONFIGDIR}
 #  * Le premier, custom.high.rules contient des règles qui overrident tout
-#    le comportement ce .procmailrc,pour des mails qui doivent être classés
+#    le comportement ce .procmailrc, pour des mails qui doivent être classés
 #    sans autre condition.
 #  * Le deuxème, custom.normal.rules doit contenir la plupart de vos règles
 #    personnelles, il est géré après les mails envoyés par le Cr@ns mais avant
@@ -36,7 +44,6 @@
 #    exemple servir à définir un dossier par défaut autre que .INBOX
 
 
-
 ################################################################################
 #####                             Commentaires                             #####
 ################################################################################
 # M: modérateur
 # F: admin federez
 # 
-### /!\ pour cron, faire attention à ne pas envoyer les mails cron perso sur
-###  zamok dans les dossiers cron !
-### 
-### pour les ml : faire des sous-dossiers bounces --> IDEA DROPPED
-### 
-### dans le main procmailrc : (ouais enfin finalement on met tout dans le même)
-###  - le bidule pour trier les crons persos --> DONE
-###  - le truc trop bien de Harry pour trier les ml du campus --> DONE
-### 
-### Multi-déco upload dans un autre dossier --> DONE
 # 
+# Si vous utilisez ce .procmailrc (et que vous recevez tous les mails concernés),
+# votre arborescence ressemblera à ceci :
+#
 # Cr@ns
 #   |
-# ./|-[$*+BT] Administratif (le côté administratif : bot free !)
-# ./|    |
-# ./|    |-[$*+B] public
-# ./|    |    |
-# ./|    |    |-[$*+B] ca
-# ./|    |    |-[+B] dsi-crans
-# ./|    |    |-[*+B] install-party
-# ./|    |    |-[B] crans-crous
-# ./|    |
-# ./|    |-[$*+BT] privé
-# ./|         |
-# ./|         |-[B] bureau
-# ./|         |-[T] trésorier
-# ./|         |-[$*+] respbats (bot free)
-# ./|         |-[$*+] impression (sans modif_solde, munin, print_status)
-# ./|         |-[+B] spoof
-# ./|         |-[+B] disconnect (sans les bots)
-# ./|
-# ./|
-# ./|-[*+BF] Federez (bah, federez quoi !)
-# ./|    |
-# ./|    |-[*+B] federez
-# ./|    |-[F] admin
-# ./|    |  |
-# ./|    |  |-[F] Debian updates
-# ./|    |  |
-# ./|    |  |-[F] federezpasswords
-# ./|    |  |
-# ./|    |  |-[F] Logcheck
-# ./|    |  |
-# ./|    |  |-[F] Logwatch
-# ./|    |
-# ./|    |-[(F)] Monit
-# ./|    |
-# ./|    |-[(F)] saclay
-# ./|
-# ./|
-# ./|-[$*+BM] Surveillance (on stalke, pour vérifier ce que font les autres)
-# ./|    |
-# ./|    |-[+] Irrelevant : logcheck
-# ./|    |
-# ./|    |-[+BM] modérateur
-# ./|    |
-# ./|    |-[+] ovh (connexions au manager)
-# ./|    |
-# ./|    |-[*+] caméras (à trier)
-# ./|    |
-# ./|    |-[$*+] LDAP
-# ./|    |    |
-# ./|    |    |-[$*+] modif-solde
-# ./|    |    |-[*+] modifications de la base ldap
-# ./|    |
-# ./|    |-[+] cranspasswords
-# ./|
-# ./|
-# ./|-[*+] Monitoring (une machine fait-elle de la merde ?)
-# ./|    |
-# ./|    |-[*+] monit
-# ./|    |     |
-# ./|    |     |- trier dynamiquement par serveur !
-# ./|    |
-# ./|    |-[+] nagios
-# ./|    |     |
-# ./|    |     |- trier dynamiquement par serveur !
-# ./|    |
-# ./|    |-[$*+] munin
-# ./|    |     |
-# ./|    |     |-[$*+] impression 
-# ./|    |
-# ./|    |-[+] arpwatch
-# ./|    |     |
-# ./|    |     |-[+] changed ethernet address
-# ./|    |     |-[+] flip-flop
-# ./|    |     |-[+] new_activity
-# ./|    |     |-[+] new_station
-# ./|    |
-# ./|    |-[+B] stats d'upload  --> À vérifier que le X-Mailer marche
-# ./|
-# ./|
-# ./|-[$*+] Problèmes (à regarder avant d'aller se coucher)
-# ./|    |
-# ./|    |-[*+] self-sloving
-# ./|    |     |
-# ./|    |     |-[*+] SQL errors
-# ./|    |     |-[+] ftp
-# ./|    |
-# ./|    |-[+] modéré
-# ./|    |     |
-# ./|    |     |-[+] intranet1
-# ./|    |     |-[+] intranet2 (en fait, django en général)
-# ./|    |     |-[*+] backuppc
-# ./|    |
-# ./|    |-[*+] attention (cron)
-# ./|    |     |
-# ./|    |     |-[*+] Triés selon les cronjob souvent rencontrés,
-# ./|    |     |      listés dans le fichier cron.folders
-# ./|    |
-# ./|    |-[*+] Argh
-# ./|    |     |
-# ./|    |     |-[*+] nols
-# ./|    |     |-[*+] pulsar
-# ./|    |
-# ./|    |-[$*+] Humain
-# ./|          |
-# ./|          |-[$*+] print_status
-# ./|          |
-# ./|          |-[+] mailman
-# ./|          |
-# ./|          |-[B+] déco N fois en un mois
-# ./|
-# ./|
-# ./|-[*+] Information (keep up to date)
-# ./|    |
-# ./|    |-[*+] apt-listchanges
-# ./|    |
-# ./|    |-[+] ovh (newsletters, factures)
-# ./|    |
-# ./|    |-[$*+] machines supprimées
-# ./|    |
-# ./|    |-[*+] git (commits)
-# ./|    |     |
-# ./|    |     |-[*+] what's new
-# ./|    |
-# ./|    |-[*+] darcs (records)
-# ./|    |     |
-# ./|    |     |-[*+] what's new
-# ./|    |
-# ./|    |-[+] bcfg2 (Serveurs non synchronisés avec bcfg2)
-# ./|    |
-# ./|    |-[+] inn (stats des servuers de news)
-# ./|
-# ./|
-# ./|-[$*+B] Technique (les discussions et les trucs reliés)
-# ./     |
-# ./     |-[*+] Nounou
-# ./     |
-# ./     |-[*+] Roots
-# ./     |
-# ./     |-[$*+] câblages à effectuer
-# ./     |
-# ./     |-[*+B] tracker
+#   |-[$*+BT] Administratif (le côté administratif : bot-free !)
+#   |    |
+#   |    |-[$*+BT] privé (des informations confidentielles peuvent y circuler)
+#   |    |    |
+#   |    |    |-[B] bureau
+#   |    |    |-[B] crous-crans
+#   |    |    |-[+B] disconnect
+#   |    |    |-[$*+] impression (sans modif_solde, munin)
+#   |    |    |-[$*+] respbats (bot-free)
+#   |    |    |-[+B] spoof
+#   |    |    |-[T] trésorier
+#   |    |
+#   |    |-[$*+B] public
+#   |         |
+#   |         |-[$*+B] ca
+#   |         |-[+B] dsi-crans
+#   |         |-[*+B] install-party
+#   |
+#   |
+#   |-[*+] Information (keep up to date)
+#   |    |
+#   |    |-[*+] apt-listchanges (Lors des mises à jour de serveurs)
+#   |    |
+#   |    |-[+] bcfg2 (Serveurs non synchronisés avec bcfg2)
+#   |    |
+#   |    |-[*+] darcs (records)
+#   |    |     |
+#   |    |     |-[*+] whatsnew
+#   |    |
+#   |    |-[*+] git (commits)
+#   |    |     |
+#   |    |     |-[*+] whatsnew
+#   |    |
+#   |    |-[+] inn (stats des servuers de news)
+#   |    |
+#   |    |-[$*+] machines_supprimees (puni !)
+#   |    |
+#   |    |-[+] ovh (Factures, Newsletters)
+#   |    |
+#   |    |-[+BT] paiements (rechargements des comptes impression via comnpay)
+#   |
+#   |
+#   |-[*+] Monitoring (une machine fait-elle de la merde ?)
+#   |    |
+#   |    |-[+] Arpwatch (chaque fois qu'une machine fait un truc nouveau/suspect sur le réseau)
+#   |    |     |
+#   |    |     |-[+] changed_ethernet_address
+#   |    |     |-[+] flip_flop
+#   |    |     |-[+] 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>
+#   |    |
+#   |    |-[$*+] Munin (Graphes)
+#   |    |     |
+#   |    |     |-[$*+] Imprimante
+#   |    |
+#   |    |-[+] Nagios (Comme Monit, mais en mieux/moins bien/différent)
+#   |    |     |
+#   |    |     |- <un dossier pour tous les switchs, un pour toutes les bornes, puis un dossier par serveur>
+#   |    |
+#   |    |-[+B] Stats-upload (Qui a uplodé ?)
+#   |
+#   |
+#   |-[$*+] Problems (Classés par degré de gravité grossier)
+#   |    |
+#   |    |-[*+] 0-Self-solving (Just ignore that)
+#   |    |     |
+#   |    |     |-[+] ftp (Problème de synchronisation du miroir Debian)
+#   |    |     |-[*+] SQL errors (sqlgrey a chié dans la colle)
+#   |    |
+#   |    |-[+] 1-Soft (Un problème, mais pas critique)
+#   |    |     |
+#   |    |     |-[*+] backuppc (babar râle)
+#   |    |     |-[+] Django
+#   |    |     |-[+] intranet1 (normal)
+#   |    |     |-[+] intranet2 (fucking locks)
+#   |    |
+#   |    |-[*+] 2-Wild (Ce serait pas mal de regarder ce qui foire)
+#   |    |     |
+#   |    |     |-[*+] cron
+#   |    |     |     |- <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)
+#   |    |
+#   |    |-[*+] 3-Argh (Il faut vite faire quelque chose !)
+#   |    |     |
+#   |    |     |-[*+] nols (La baie de disque a un problème !)
+#   |    |     |-[*+] pulsar (On a plus de courant !!)
+#   |    |
+#   |    |-[$*+] 4-Human-made (Ces mails sont générés par des gens)
+#   |          |
+#   |          |
+#   |          |-[+] Mailman (Des mailing-list chient, ou des gens demandent de l'aide)
+#   |          |
+#   |          |-[$*+] print_status (Une impression a échoué)
+#   |
+#   |
+#   |-[$*+BM] Surveillance (On stalke, pour vérifier ce que font les autres. Par ordre croissant d'importance à vérifier)
+#   |    |
+#   |    |-[+BM] 1-Moderateurs
+#   |    |
+#   |    |-[+] 2-OVH (Connexions au manager)
+#   |    |
+#   |    |-[*+] 3-Cameras (Quelqu'un est rentré dans un local sensible)
+#   |    |     |
+#   |    |     |-[*+] 0B
+#   |    |     |-[*+] 0H
+#   |    |
+#   |    |-[$*+] 4-LDAP (Modification de la base LDAP qui mérite un coup d'oeil)
+#   |    |    |
+#   |    |    |-[*+] Modification (Changement de droit ou modification d'une machine crans)
+#   |    |    |-[$*+] Solde (Modification d'un solde impression)
+#   |    |
+#   |    |-[+] 5-cranspasswords (Quand quelqu'un modifie un mot de passe chiffré)
+#   |
+#   |
+#   |-[$*+B] Technique (les discussions et les trucs reliés)
+#        |
+#        |-[*] Apprentis
+#        |
+#        |-[*+] Freebox (Vous avez un message vocal)
+#        |
+#        |-[*+] Nounou
+#        |
+#        |-[+] root
+#        |
+#        |-[*+] roots
+#
+# Federez (Les mails concernant l'asso FedeRez sont dans un dossier à part)
+#   |
+#   |-[*+BF] federez (La ML de discussion principale de FedeRez)
+#   |
+#   |-[F] admin (La ML de l'équipe technique de FedeRez)
+#   |  |
+#   |  |-[F] Debian updates (Quand un serveur veut être mis à jour)
+#   |  |
+#   |  |-[F] federezpasswords (Quand quelqu'un modifie un mot de passe chiffré)
+#   |  |
+#   |  |-[F] Logcheck (Spam)
+#   |  |
+#   |  |-[F] Logwatch (Spam)
+#   |  |
+#   |  |-[F] OVH (Factures, Newsletters)
+#   |
+#   |-[(F)] Monit (Pour voir si un serveur ne répond plus)
+#   |
+#   |-[(F)] saclay (Pour préparer notre avenir à Saclay)
 # 
 
 
 #################################################################
 ##                   Variables d'environnement                 ##
 #################################################################
+### Paths
 # Path du dossier où sont rangés les mails
 MAILDIR="${HOME}/Mail"
-# Shell à utiliser pour exécuter des commandes
-SHELL="/bin/bash"
 # Dossier contenant tout le garbage procmail-related
 # (le .procmailrc lui-même est dans le home)
 PROCMAILDIR="${HOME}/.procmail"
@@ -228,6 +238,11 @@ CONFIGDIR="${PROCMAILDIR}/rc"
 LOGFILE="${PROCMAILDIR}/logs/procmail.log"
 
 
+### Scripting
+# Shell à utiliser pour exécuter des commandes
+SHELL="/bin/bash"
+
+
 #################################################################
 ##                      Noms de dossiers                       ##
 #################################################################
@@ -243,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"
@@ -262,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"
@@ -285,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
@@ -311,7 +327,6 @@ GESTCRANSDIR="${WILDDIR}.gest_crans"
 NOLSDIR="${ARGHDIR}.nols"
 PULSARDIR="${ARGHDIR}.pulsar"
 MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman"
-PRINTSTATUSDIR="${HUMANPROBLEMSDIR}.print_status"
 MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco"
 
 ## Dossier de surveillance (= surveillance d'actions humaines)
@@ -343,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"
@@ -372,6 +389,30 @@ 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                                #####
 ################################################################################
@@ -443,14 +484,19 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules"
 :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
@@ -501,7 +547,7 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules"
 
 # On matche tous les alias de root@crans.org
 :0
-* ^(To|Cc): .*(root|abuse|amavis|backup|bind|bin|clamav|daemon|ftpadm|ftpmaster|ftp-mirror|ftp|games|gnats|irc|list|logcheck|lp|mail|majordom|man|msql|munin|news|operator|postgres|proxy|sync|sys|usenet|uucp|webmaster|www-clubs|www-data|www-perso|postmaster|mailer-daemon)@(crans\.org|crans\.ens-cachan\.fr)
+* ^(To|Cc):.* (root|abuse|amavis|backup|bind|bin|clamav|daemon|ftpadm|ftpmaster|ftp-mirror|ftp|games|gnats|irc|list|logcheck|lp|mail|majordom|man|msql|munin|news|operator|postgres|proxy|sync|sys|usenet|uucp|webmaster|www-clubs|www-data|www-perso|postmaster|mailer-daemon)@(crans\.org|crans\.ens-cachan\.fr)
 {
   # Spam de logcheck
   :0
@@ -621,7 +667,7 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules"
   * ^X-GitInfo
   {
     :0
-    * ^X-Mailer: /usr/scripts/utils/git-whatsnew
+    * XMAILER ?? /usr/scripts/utils/git-whatsnew
     ${GITDIR}.whatsnew/
     
     :0
@@ -638,14 +684,9 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules"
     ${DARCSDIR}/
   }
   
-  # Tracker
-  :0
-  * ^X-Mailer:.*Redmine
-  ${TRACKERDIR}/
-  
   # Messages sur la Freebox
   :0
-  * ^From: telephonie.freebox@freetelecom.fr
+  * ^From: telephonie\.freebox@(mevo\.)?freetelecom\.fr
   ${FREEBOXDIR}/
   
   # Serveurs non synchronisés avec bcfg2
@@ -671,19 +712,28 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules"
 {
   # 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
@@ -693,45 +743,42 @@ ${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}/
 }
 
+
 # Sur la ML respbats@
 :0
 * ^List-Id:.*respbats\.lists\.crans\.org
 {
   # Machines supprimées pour chambre invalide
   :0
-  * ^X-Mailer: /usr/scripts/gestion/chambres_vides.py
+  * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py
   ${DELETEDMACHINES}/
 }
 
-#WIP# ###############################################################################
-#WIP# # ^^^^^^^ Classés le plus possible par ordre de spammage décroissant
-
-#WIP# # vvvvvvv Les MLs, à laisser en bas
-#WIP# ###############################################################################
+# La ML paiements@
+:0
+* ^List-Id:.*paiements\.lists\.crans\.org
+${PAIEMENTSDIR}/
 
 
 #################################################################
 ##                   Gestion des cron perso                    ##
 #################################################################
 # Les Subjects des mails de (Ana)?Cron
-# sont de la forme "(Ana)?Cron <user@host>"
+# sont de la forme "Cron <user@host>" ou "Anacron job '[...]' on host"
 # On parse pour récupérer le host et trier avec
 :0
 * ^(X-Cron-Env|From: Anacron)
 {
+  # Si le mail vient de "host.domain.tld",
+  # On range ça dans le dossier "host"
   :0
-  * ^Subject:.*Cron <[^@>]+@\/[^>]+
+  * ^Subject:.*(Cron <[^@>]+@\/[^>]+|Anacron job .* on \/.*)
   {
     # On prend garde à ne pas créer un sous-dossier
     # si jamais le host contient un . ou un espace
@@ -740,7 +787,7 @@ ${CABLAGEDIR}/
     ${CRONPERSODIR}.${HOST_}/
   }
   
-  # Dans le cas (improbable) où le Subject de matche pas
+  # Dans le cas (improbable) où le Subject ne matche pas
   :0
   ${CRONPERSODIR}/
 }
@@ -775,10 +822,9 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
 
 :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               ##
@@ -826,6 +872,11 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     :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)         ##
@@ -852,7 +903,7 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     
     # MLs Med
     :0
-    * ? echo "${ML}" | grep med
+    * ? echo "${ML}" | grep -E "^med"
     ${MLMEDDIR}.${ML_}/
     
     # MLs SDA
@@ -862,7 +913,7 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     
     # MLs BDL
     :0
-    * ? echo "${ML}" | egrep "(bdl|interludes)"
+    * ? echo "${ML}" | egrep "(bdl|interludes|kwei)"
     ${MLBDLDIR}.${ML_}/
     
     # MLs BDS
@@ -870,6 +921,11 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     * ? 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)"
@@ -899,6 +955,13 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     ${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              ##
   #################################################################
@@ -947,12 +1010,16 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
   ##              Gestion des autres mailing-listes              ##
   #################################################################
   # On récupère le nom de domaine et le nom de la ML
+  # Le nom de domaine, c'est le mot (sans .) qui précède le TLD
   DOMAIN=`echo "${ML}" | sed 's/.*\.\([^\.]\+\)\.[^\.]\+$/\1/'`
   # On ne sait jamais ce qu'on peut rencontrer…
   DOMAIN_=`echo "${DOMAIN}" | sed 's/ /_/g'`
+  # On vire le domain et le TLD
+  # On vire .list ou .lists si c'est la composante la plus à droite
+  # 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_}/
 }