]> 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 30bac2f818c6dc9f8606381c52e073d72c84c9f7..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                             #####
@@ -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"
 
 
 #################################################################
@@ -401,18 +389,33 @@ 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                                #####
 ################################################################################
 
-#~# # 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 +506,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}/
@@ -745,21 +748,15 @@ ${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)
-#~# :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}/
-#~# }
+# On utilise la variable XMAILER peuplée dans la phase de Preprocessing
+:0
+* ^List-Id:.*respbats\.lists\.crans\.org
+{
+  # Machines supprimées pour chambre invalide
+  :0
+  * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py
+  ${DELETEDMACHINES}/
+}
 
 
 #################################################################
@@ -792,8 +789,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                 ##
@@ -1004,5 +1001,5 @@ ${CABLAGEDIR}/
   ${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"