]> gitweb.pimeys.fr Git - config-20-100.git/blobdiff - .procmailrc
Décodage des headers avec un oneliner : adieu la dépendance à un script
[config-20-100.git] / .procmailrc
index 82a7635ea72c7cfe096a9fedaf89737ee4585543..280b61201873640580f492b2e88fb15a59b9fd14 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                             #####
 #   |    |
 #   |    |-[+] 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é ?)
 #   |
@@ -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"
 
 
 #################################################################
@@ -312,6 +300,7 @@ 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"
@@ -400,6 +389,21 @@ 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("iso-8859-1",decode("MIME-Header",$_))'
+
+
+
 ################################################################################
 #####                                Règles                                #####
 ################################################################################
@@ -471,14 +475,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
@@ -739,19 +748,13 @@ ${CABLAGEDIR}/
 
 
 # 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)
+# On utilise la variable XMAILER peuplée dans la phase de Preprocessing
 :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
+  * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py
   ${DELETEDMACHINES}/
 }