1 # .procmailrc générique mis à votre disposition
2 # par les gentils membres actifs du Cr@ns
3 # Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
4 # Des questions, des suggestions : {nounou,ca}@lists.crans.org
7 # Les sections commentées par #~# sont des features qui ne sont pas activées
8 # par défaut. Sentez-vous libre de les décommenter pour les utiliser.
10 # Attention : le path par défaut des fichiers de logs est $HOME/.procmail/logs
11 # Assurez-vous que le dossier en question existe avant d'utiliser ce .procmailrc
13 #################################################################
15 #################################################################
17 # Ce fichier est mis à votre disposition par des cranseux sans aucune garantie.
18 # Nous sommes un certain nombre à l'utiliser nous-mêmes, souvent dans une version
19 # légèrement modifiée.
20 # * Nous ne sommes pas responsables si vous perdez des mails ou si ils sont mal triés.
21 # * Pensez à copier également les autres fichiers si vous utilisez les include.
22 # * Vous pouvez rester à jour en trackant le dépôt git : http://git.crans.org/git/fichiers_configuration.git
23 # (on corrige des trucs et on rajoute parfois des nouveaux/meilleurs tris)
25 #------------------------------------------------------------------------------
26 # Ce fichier commence par une grosse section de commentaire qui donne un aperçu
27 # de l'arborescence de dossiers qui sera obtenue en utilisant ce .procmailrc.
28 # Les règles ne sont pas dans le même ordre, en effet, il est plus efficace
29 # de mettre en premier les règles qui sont le plus souvent vérifiées pour
30 # diminuer le temps moyen de traitement.
32 # Vous pouvez ajouter vos propres règles de tri sans modifier ce fichier,
33 # en effet, ce .procmailrc inclus trois autres fichiers de règles
34 # (pour l'instant commentés par #~#)
35 # Ils doivent être tous les trois dans ${CONFIGDIR}
36 # * Le premier, custom.high.rules contient des règles qui overrident tout
37 # le comportement ce .procmailrc, pour des mails qui doivent être classés
38 # sans autre condition.
39 # * Le deuxème, custom.normal.rules doit contenir la plupart de vos règles
40 # personnelles, il est géré après les mails envoyés par le Cr@ns mais avant
41 # le comportement par défaut des mailing-lists, ce qui vous permet d'en
42 # trier certaines selon un autre schéma
43 # * Le troisième, custom.final.rules est appliqué tout à la fin, il peut par
44 # exemple servir à définir un dossier par défaut autre que .INBOX
47 ################################################################################
48 ##### Commentaires #####
49 ################################################################################
51 # Les tags suivants expliquent quels membres actifs reçoivent quels mails :
52 # $: câbleur/imprimeur
61 # Si vous utilisez ce .procmailrc (et que vous recevez tous les mails concernés),
62 # votre arborescence ressemblera à ceci :
66 # |-[$*+BT] Administratif (le côté administratif : bot-free !)
68 # | |-[$*+BT] privé (des informations confidentielles peuvent y circuler)
71 # | | |-[B] crous-crans
72 # | | |-[+B] disconnect
73 # | | |-[$*+] impression (sans modif_solde, munin)
74 # | | |-[$*+] respbats (bot-free)
82 # | |-[*+B] install-party
85 # |-[*+] Information (keep up to date)
87 # | |-[*+] apt-listchanges (Lors des mises à jour de serveurs)
89 # | |-[+] bcfg2 (Serveurs non synchronisés avec bcfg2)
91 # | |-[*+] darcs (records)
95 # | |-[*+] git (commits)
99 # | |-[+] inn (stats des servuers de news)
101 # | |-[$*+] machines_supprimees (puni !)
103 # | |-[+] ovh (Factures, Newsletters)
105 # | |-[+BT] paiements (rechargements des comptes impression via comnpay)
108 # |-[*+] Monitoring (une machine fait-elle de la merde ?)
110 # | |-[+] Arpwatch (chaque fois qu'une machine fait un truc nouveau/suspect sur le réseau)
112 # | | |-[+] changed_ethernet_address
113 # | | |-[+] flip_flop
114 # | | |-[+] new_activity
115 # | | |-[+] new_station
117 # | |-[+B] mac_prises (spoofing is being watched)
119 # | |-[*+] Monit (Un truc marche pas/remarche, un disque est plein,…)
121 # | | |- <un dossier par serveur>
123 # | |-[$*+] Munin (Graphes)
125 # | | |-[$*+] Imprimante
127 # | |-[+] Nagios (Comme Monit, mais en mieux/moins bien/différent)
129 # | | |- <un dossier pour tous les switchs, un pour toutes les bornes, puis un dossier par serveur>
131 # | |-[+B] Stats-upload (Qui a uplodé ?)
134 # |-[$*+] Problems (Classés par degré de gravité grossier)
136 # | |-[*+] 0-Self-solving (Just ignore that)
138 # | | |-[+] ftp (Problème de synchronisation du miroir Debian)
139 # | | |-[*+] SQL errors (sqlgrey a chié dans la colle)
141 # | |-[+] 1-Soft (Un problème, mais pas critique)
143 # | | |-[*+] backuppc (babar râle)
145 # | | |-[+] intranet1 (normal)
146 # | | |-[+] intranet2 (fucking locks)
148 # | |-[*+] 2-Wild (Ce serait pas mal de regarder ce qui foire)
151 # | | | |- <triés selon les cronjob souvent rencontrés listés dans le fichier cron.folders>
153 # | | |-[+] gest_crans (Rapports de bugs envoyés lors d'un crash de gest_crans)
155 # | |-[*+] 3-Argh (Il faut vite faire quelque chose !)
157 # | | |-[*+] nols (La baie de disque a un problème !)
158 # | | |-[*+] pulsar (On a plus de courant !!)
160 # | |-[$*+] 4-Human-made (Ces mails sont générés par des gens)
163 # | |-[+] Mailman (Des mailing-list chient, ou des gens demandent de l'aide)
165 # | |-[$*+] print_status (Une impression a échoué)
168 # |-[$*+BM] Surveillance (On stalke, pour vérifier ce que font les autres. Par ordre croissant d'importance à vérifier)
170 # | |-[+BM] 1-Moderateurs
172 # | |-[+] 2-OVH (Connexions au manager)
174 # | |-[*+] 3-Cameras (Quelqu'un est rentré dans un local sensible)
179 # | |-[$*+] 4-LDAP (Modification de la base LDAP qui mérite un coup d'oeil)
181 # | | |-[*+] Modification (Changement de droit ou modification d'une machine crans)
182 # | | |-[$*+] Solde (Modification d'un solde impression)
184 # | |-[+] 5-cranspasswords (Quand quelqu'un modifie un mot de passe chiffré)
187 # |-[$*+B] Technique (les discussions et les trucs reliés)
191 # |-[*+] Freebox (Vous avez un message vocal)
199 # Federez (Les mails concernant l'asso FedeRez sont dans un dossier à part)
201 # |-[*+BF] federez (La ML de discussion principale de FedeRez)
203 # |-[F] admin (La ML de l'équipe technique de FedeRez)
205 # | |-[F] Debian updates (Quand un serveur veut être mis à jour)
207 # | |-[F] federezpasswords (Quand quelqu'un modifie un mot de passe chiffré)
209 # | |-[F] Logcheck (Spam)
211 # | |-[F] Logwatch (Spam)
213 # | |-[F] OVH (Factures, Newsletters)
215 # |-[(F)] Monit (Pour voir si un serveur ne répond plus)
217 # |-[(F)] saclay (Pour préparer notre avenir à Saclay)
222 ################################################################################
223 ##### Variables #####
224 ################################################################################
226 #################################################################
227 ## Variables d'environnement ##
228 #################################################################
230 # Path du dossier où sont rangés les mails
231 MAILDIR="${HOME}/Mail"
232 # Dossier contenant tout le garbage procmail-related
233 # (le .procmailrc lui-même est dans le home)
234 PROCMAILDIR="${HOME}/.procmail"
235 # Dossier où sont les fichiers de configuration supplémentaires pour procmail
236 CONFIGDIR="${PROCMAILDIR}/rc"
237 # Path du fichier de log de procmail
238 LOGFILE="${PROCMAILDIR}/logs/procmail.log"
240 # Dossier mail de secours
241 ORGMAIL=/home/mail/${USER}
245 # Shell à utiliser pour exécuter des commandes
249 #################################################################
250 ## Noms de dossiers ##
251 #################################################################
252 # /Attention à ne pas mettre de . ou d'espace au mauvais endroit…/
254 ### Dossiers personnels
255 ## Dossier pour ranger les mails de Cron
256 ## (ceux envoyés par un serveur Cr@ns seront rangés ailleurs)
261 # Spam reçu sur (usenet|news)@(crans.org|crans.ens-cachan.fr)
262 SPAMINNDIR="${SPAMDIR}.usenet"
264 ### Dossiers pour les MLs qui ne sont pas catchées par une autre règle
267 ## Dossier pour ranger les rappels de mots de passes envoyés par Mailman
268 RAPPELMDPDIR="${MLDIR}.rappels_mdp"
270 ### Dossiers pour les MLs du campus
271 MLCAMPUSDIR="${MLDIR}.Campus"
272 MLBDEDIR="${MLCAMPUSDIR}.BDE"
273 MLCLUBSDIR="${MLCAMPUSDIR}.Clubs"
274 MLMEDDIR="${MLCLUBSDIR}.Med"
275 MLBDLDIR="${MLCAMPUSDIR}.BDL"
276 MLBDADIR="${MLCAMPUSDIR}.BDA"
277 MLBDSDIR="${MLCAMPUSDIR}.BDS"
278 MLSDADIR="${MLCAMPUSDIR}.SDA"
279 MLGALADIR="${MLCAMPUSDIR}.Gala"
280 MLSONODIR="${MLCAMPUSDIR}.SoNo"
281 MLWEIDIR="${MLCAMPUSDIR}.WEI"
283 ## Dossier où atterrira une ML non-répertoriée
286 ### Dossier pour les MLs de promo
287 MLPROMODIR="${MLDIR}.Promo"
289 ### Dossier pour les MLs non répertoriées plus haut et non-MA-crans
290 MLPERSODIR="${MLDIR}.Divers"
292 ### Dossiers pour les Membres Actifs du Cr@ns
295 ## Dossiers de mailing lists
296 CRANSADMINISTRATIFDIR="${CRANSDIR}.Administratif"
297 CRANSADMINISTRATIFPUBLICDIR="${CRANSADMINISTRATIFDIR}.public"
298 CRANSADMINISTRATIFPRIVATEDIR="${CRANSADMINISTRATIFDIR}.prive"
300 ## Dossiers pour les mails de monitoring
301 MONITORINGDIR="${CRANSDIR}.Monitoring"
302 MONITDIR="${MONITORINGDIR}.Monit"
303 NAGIOSDIR="${MONITORINGDIR}.Nagios"
304 NAGIOSSWITCHSDIR="${NAGIOSDIR}.0-switchs"
305 NAGIOSBORNESDIR="${NAGIOSDIR}.1-bornes"
306 ARPWATCHDIR="${MONITORINGDIR}.Arpwatch"
307 MUNINDIR="${MONITORINGDIR}.Munin"
308 MUNINIMPRESSIONDIR="${MUNINDIR}.Imprimante"
309 STATUPLOADDIR="${MONITORINGDIR}.Stats-upload"
310 MACPRISESDIR="${MONITORINGDIR}.Mac_prises"
312 ## Dossiers pour le mails concernant des "problèmes"
314 PROBLEMSDIR="${CRANSDIR}.Problems"
315 # Par ordre de gravité croissant
316 SELFSOLVINGDIR="${PROBLEMSDIR}.0-Self-solving"
317 SOFTDIR="${PROBLEMSDIR}.1-Soft"
318 WILDDIR="${PROBLEMSDIR}.2-Wild"
319 ARGHDIR="${PROBLEMSDIR}.3-Argh"
320 HUMANPROBLEMSDIR="${PROBLEMSDIR}.4-Human-made"
322 FTPDIR="${SELFSOLVINGDIR}.ftp"
323 SQLGREYDIR="${SELFSOLVINGDIR}.sql-errors"
324 BACKUPPCDIR="${SOFTDIR}.backuppc"
325 DJANGODIR="${SOFTDIR}.Django"
326 INTRANET2DIR="${SOFTDIR}.Intranet2"
327 INTRANET1DIR="${SOFTDIR}.intranet-bugreport"
328 CRONDIR="${WILDDIR}.cron"
329 GESTCRANSDIR="${WILDDIR}.gest_crans"
330 NOLSDIR="${ARGHDIR}.nols"
331 PULSARDIR="${ARGHDIR}.pulsar"
332 MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman"
333 MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco"
335 ## Dossier de surveillance (= surveillance d'actions humaines)
337 SURVEILLANCEDIR="${CRANSDIR}.Surveillance"
338 # Par ordre de sensibilité croissant
339 LOGCHECKDIR="${SURVEILLANCEDIR}.0-logcheck"
340 MODERATEURSDIR="${SURVEILLANCEDIR}.1-Moderateurs"
341 OVHMANAGERDIR="${SURVEILLANCEDIR}.2-OVH"
342 CAMERASDIR="${SURVEILLANCEDIR}.3-Cameras"
343 LDAPDIR="${SURVEILLANCEDIR}.4-LDAP"
344 LDAPSOLDEDIR="${LDAPDIR}.Solde"
345 LDAPMODIFDIR="${LDAPDIR}.Modification"
346 CRANSPASSWORDSDIR="${SURVEILLANCEDIR}.5-cranspasswords"
348 ## Dossier informatif (= pour se tenir au courant de ce qui se passe au Cr@ns)
350 INFORMATIONDIR="${CRANSDIR}.Information"
351 # Mails d'ovh autre que les notifications de connexion au manager
352 OVHDIR="${INFORMATIONDIR}.OVH"
354 APTLISTCHANGESDIR="${INFORMATIONDIR}.apt-listchanges"
355 # Machines supprimées pour chambre invalide
356 DELETEDMACHINES="${INFORMATIONDIR}.machines_supprimees"
358 GITDIR="${INFORMATIONDIR}.git"
359 DARCSDIR="${INFORMATIONDIR}.darcs"
360 # Mail envoyé quotidiennement par bcfg2 avec la liste des serveurs non synchro
361 BCFG2DIR="${INFORMATIONDIR}.bcfg2"
362 # Statistiques des serveurs de news
363 INNDIR="${INFORMATIONDIR}.inn"
364 # Notifications de bridage pour upload
365 DECODIR="${INFORMATIONDIR}.deconnexion"
366 # Résumés des rehargements impression comnpay
367 PAIEMENTSDIR="${INFORMATIONDIR}.paiements"
369 ## Dossier de discussion techniques
371 TECHNIQUEDIR="${CRANSDIR}.Technique"
372 # Mails de roots@ non catchées avant
373 ROOTSDIR="${TECHNIQUEDIR}.roots"
374 # Mails de la ML nounou
375 NOUNOUDIR="${TECHNIQUEDIR}.Nounou"
376 # Messages laissés sur la Freebox
377 FREEBOXDIR="${TECHNIQUEDIR}.Freebox"
378 # Dossier où atterriront les mails de root@ non triés
379 ROOTDEFAULTDIR="${TECHNIQUEDIR}.root"
380 # Mails de la ML apprentis
381 APPRENTISDIR="${TECHNIQUEDIR}.Apprentis"
383 ### Dossier racine pour Federez
384 FEDEREZDIR=".FedeRez"
385 FEDEREZMONITDIR="${FEDEREZDIR}.Monit"
386 FEDEREZADMINDIR="${FEDEREZDIR}.admin"
387 FEDEREZLOGWATCHDIR="${FEDEREZADMINDIR}.Logwatch"
388 FEDEREZLOGCHECKDIR="${FEDEREZADMINDIR}.Logcheck"
389 FEDEREZDEBIANDIR="${FEDEREZADMINDIR}.Debian-updates"
390 FEDEREZPASSWORDSDIR="${FEDEREZADMINDIR}.federezpasswords"
391 FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH"
395 ################################################################################
396 ##### Preprocessing #####
397 ################################################################################
399 # On décode les champs sur lesquels ont pourrait avoir besoin de matcher
400 # plus tard la version décodée. On stocke les versions décodées
401 # dans des variables.
402 # "formail -cXHeader" récupère le champ Header (-X) en enlevant les \n (-c)
403 # si le champ fait plusieurs lignes
406 XMAILER=| formail -cXX-Mailer: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
410 SUBJECT=| formail -cXSubject: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
414 LISTID=| formail -cXList-ID: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
415 #~# # Pour faire fonctionner correctement le tri des mails envoyés par Discourse,
416 #~# # Décommenter le INCLUDERC suivant
417 #~# INCLUDERC="${CONFIGDIR}/discourse.preprocessing"
419 ################################################################################
421 ################################################################################
423 #~# # Patch pour traiter les mails qui ont été
424 #~# # reçus avant le 30/06/13, car certaines règles de tri du .procmailrc
425 #~# # n'étaient pas encore valables à l'époque.
426 #~# # très utile si on veut retrier tous ses mails
427 #~# INCLUDERC="${CONFIGDIR}/retrocompatibility_patch.rules"
429 #~# # Fichier de règles prioritaires à personnaliser
430 #~# INCLUDERC="${CONFIGDIR}/custom.high.rules"
432 #################################################################
433 ## Gestion des mails d'Arpwatch ##
434 #################################################################
436 * ^From:.*arpwatch@crans\.org
438 # On trie les différents types de mails d'Arpwatch,
439 # en faisant attention aux . et aux espaces après avoir éliminé
440 # tout ce qui se trouve après " (".
444 TYPE=`echo $MATCH | sed 's/ (.*//;s/\( \|\.\)/_/g;'`
446 ${ARPWATCHDIR}.${TYPE}/
454 #################################################################
455 ## Gestion des mails de Monit ##
456 #################################################################
458 # Les mails de Monit à propos du serveur A sont envoyés dans le dossier
459 # ${MONITDIR}.A/ si le dossier n'existe pas, il est créé mais il
460 # faut encore s'y abonner...
462 * ^(X-Mailer|User-Agent):.*monit
464 # Avant de tester les hostnames Cr@ns, règle spéciale utile pour
465 # certains admin de FedeRez
467 * ^To: federez-monit@
471 * ^Subject:.*monit \/[^ \.]+
472 ${MONITDIR}.${MATCH}/
474 # Dossier de Monit par défaut, si Monit se met à envoyer d'autres mails
480 #################################################################
481 ## Gestion des mails de Nagios ##
482 #################################################################
484 # Les mails de Nagios à propos du serveur A sont envoyés dans le dossier
485 # ${NAGIOSDIR}.A/ si le dossier n'existe pas, il est créé mais il
486 # faut encore s'y abonner
488 * ^(From: nagios@crans\.org|User-Agent:.*nagios)
490 # Tous les switchs vont dans le dossier ${NAGIOSSWITCHSDIR}
492 * ^Subject:.*[A-Z]+ - (bat[a-z]-[0-9]+|backbone|minigiga)\.
495 # Toutes les bornes vont dans le dossier ${NAGIOSBORNESDIR}
497 * ^Subject:.* [A-Z]+ - [a-z0-9](-*[a-z0-9]+)*\.wifi\.crans\.org
500 # Chaque serveur a son dossier
502 * ^Subject:.* [A-Z]+ - \/[a-z0-9](-*[a-z0-9]+)*
503 ${NAGIOSDIR}.${MATCH}/
505 # Si l'envie prenait à Nagios de raconter un peu plus sa vie
511 #################################################################
512 ## Gestion des mails de Cron ##
513 #################################################################
515 # Attention, si on enlève la ligne qui filtre sur le To:, on catche
516 # aussi tous les mails Cron qui ne sont pas envoyés par un serveur Cr@ns
518 * ^To:.*(roots?|postgres|www-data|list)@crans\.org
519 * ^(X-Cron-Env|From: Anacron)
521 #~# # Par défaut, on ne trie pas les mails de Cron, pensez à décommenter
522 #~# # le INCLUDERC (et à copier le fichier complémentaire) pour les trier
523 #~# INCLUDERC=${CONFIGDIR}/cron.rules
530 #################################################################
531 ## Gestion des mails de root@crans.org ##
532 #################################################################
534 # Statistiques du serveur de news
535 # Désolidarisé du bloc root@crans.org pour séparer les spams
536 # sans qu'ils tombent dans ${ROOTDEFAULTDIR}
538 * ^To:.*(usenet|news)@(crans\.org|crans\.ens-cachan\.fr)
540 # L'intérêt c'est que plein de spam arrive sur ces addresses
541 # et seules les stats d'inn sont censées y arriver.
542 # Donc on peut bazarder tout ce qui n'est pas stat au Spam
544 * ^From: news@crans.org
551 # On matche tous les alias de root@crans.org
553 * ^(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)
557 * ^From:.*logcheck@crans\.org
560 # Mails envoyés par munin quand il trouve qu'un graphe sort des limites
562 * ^From: munin@crans\.org
565 # Mails envoyés en cas d'erreur de synchronisation du ftp
567 * ^From: mirror@crans\.org
570 # Mails envoyés en cas d'erreur sur l'intranet2
572 * ^Subject: \[Intranet2 Cr@ns\]
575 # Mails envoyés en cas d'une autre erreur Django
577 * ^Subject: \[Django\]
580 # Mails envoyés lors de la modification d'un fichier de mot de passe
582 * ^X-Mailer: cranspasswords
583 ${CRANSPASSWORDSDIR}/
585 # Mails envoyés par OVH…
587 * ^From:.*support@ovh\.com
589 # …lors d'une connexion au manager
591 * ^X-Ovh-Template: nic/fr/loginNotification.model
594 # Pour autre chose (facture, newsletter)
599 # Mail envoyés par apt-listchanges lors d'une mise à jour
601 * ^Subject:.*apt-listchanges
602 ${APTLISTCHANGESDIR}/
604 # Mail envoyé quand gest_crans plante
606 * ^Subject: Bugreport gest_crans.py
609 # Tout ce qui traîne sur root et qui n'est pas catché par quelque chose
615 #################################################################
616 ## Gestion des mails de roots@crans.org ##
617 #################################################################
620 * ^(To|Cc|List-Id):.*roots(@|\.lists\.)crans\.org
622 # Il y a aussi des apt-listchanges sur roots@
624 * ^Subject:.*apt-listchanges
625 ${APTLISTCHANGESDIR}/
627 # Mails envoyés par la baie de disques
629 * ^From: nols@crans\.org
632 # Mails envoyés par l'onduleur
634 * ^From: pulsar@adm\.crans\.org
637 # Mails envoyés par le script qui détecte les changements dans la base LDAP
639 * ^Subject:.*Surveillance modifications de la base LDAP
642 # Mails envoyés lors d'une erreur sur la base de donnée sqlgrey
644 * ^From: sqlgrey@crans\.org
647 # Mails envoyés par backuppc
649 * ^From: backuppc@crans\.org
652 # Souriez, vous êtes photographiés
654 * ^From:.*cameras@crans\.org
656 # On trie par lieu de la caméra
666 # I'm in your mailbox, watching your commits
667 # Attention à bien filtrer git avant darcs parce que les mails git
668 # contiennent aussi le header X-DarcsInfo !
673 * XMAILER ?? /usr/scripts/utils/git-whatsnew
683 * ^X-Mailer: Python Darcs Check
684 ${DARCSDIR}.whatsnew/
690 # Messages sur la Freebox
692 * ^From: telephonie\.freebox@(mevo\.)?freetelecom\.fr
695 # Serveurs non synchronisés avec bcfg2
697 * ^X-Mailer: bcfg2-reports
700 # Si il n'y pas de condition de tri, ça va dans le dossier Technique
706 #################################################################
707 ## Mails envoyés sur des MLs mais par des bots ##
708 #################################################################
709 # Il n'y jamais de dossier par défaut, le mail sera rattrapé
710 # au moment de la gestion gobale des mailing-lists
712 # Sur la ML disconnect@
714 * ^List-Id:.*disconnect\.lists\.crans\.org
716 # Statistiques d'upload
718 * XMAILER ?? /usr/scripts/surveillance/statistiques2.py
721 # Résumé quotidien des correspondances mac_prises
723 * XMAILER ?? /usr/scripts/surveillance/mac_prises/mac_prise_analyzer.py
726 # Notifications de bridage pour upload
728 * XMAILER ?? /usr/scripts/surveillance/deconnexion2.py
732 * SUBJECT ?? fois ce mois
740 # Sur la ML impression@
742 * ^List-Id:.*impression\.lists\.crans\.org
744 # Modification de solde
746 * ^X-Mailer: modif_solde
749 # Munin stock papier et toners
751 * ^From: munin@crans\.org
752 ${MUNINIMPRESSIONDIR}/
756 # Sur la ML respbats@
758 * ^List-Id:.*respbats\.lists\.crans\.org
760 # Machines supprimées pour chambre invalide
762 * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py
768 * ^List-Id:.*paiements\.lists\.crans\.org
772 #################################################################
773 ## Gestion des cron perso ##
774 #################################################################
775 # Les Subjects des mails de (Ana)?Cron
776 # sont de la forme "Cron <user@host>" ou "Anacron job '[...]' on host"
777 # On parse pour récupérer le host et trier avec
779 * ^(X-Cron-Env|From: Anacron)
781 # Si le mail vient de "host.domain.tld",
782 # On range ça dans le dossier "host"
784 * ^Subject:.*(Cron <[^@>]+@\/[^>]+|Anacron job .* on \/.*)
786 # On prend garde à ne pas créer un sous-dossier
787 # si jamais le host contient un . ou un espace
788 HOST_=`echo "$MATCH" | sed 's/\(\.\| \)/_/g'`
790 ${CRONPERSODIR}.${HOST_}/
793 # Dans le cas (improbable) où le Subject ne matche pas
799 #################################################################
800 ## Inclusion des règles personnelles ##
801 #################################################################
802 #~# # Fichier de règles à personnaliser
803 #~# INCLUDERC="${CONFIGDIR}/custom.normal.rules"
805 #################################################################
806 ## Gestion des mails de Mailman ##
807 #################################################################
808 # La ML mailman@ est un peu particulière
810 * ^(List-Id:.*mailman\.|(To|Cc):.*mailman-(owner|bounces)@)lists\.crans\.org
813 * ^Subject:.*Rappel_pour_les_abonnements_aux_listes
821 #################################################################
822 ## Gestion des mailing-listes ##
823 #################################################################
824 # Ajouter à la suite vos propres règles pour les mailing-listes non gérées ici
827 # On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML
830 ML=`echo "${LISTID}" | sed 's/.*<\([^<>]\+\)>$/\1/'`
832 #################################################################
833 ## Gestion des mailing-listes Cr@ns ##
834 #################################################################
836 * ^List-Id:.*lists\.crans\.org
838 # On veut ne garder que le nom de la ML sans le nom de domaine
839 ML=`echo "${ML}" | sed 's/\.lists\.crans\.org//'`
840 # On prend garde à ne pas créer un sous-dossier
841 # si jamais le List-Id contient un . ou un espace
842 ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'`
844 #################################################################
845 ## Cas où la ML est une ML de membre actif du Cr@ns ##
846 #################################################################
848 # MLs publiques (au sens où il n'y a pas que des cranseux abonnés)
850 * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.public
851 ${CRANSADMINISTRATIFPUBLICDIR}.${ML_}/
853 # MLS où il n'y a que des membres actifs abonnés
854 # (on peut y envoyer des informations privées)
856 * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.prive
857 ${CRANSADMINISTRATIFPRIVATEDIR}.${ML_}/
859 # La ML federez@lists.crans.org va quand même dans le dossier FedeRez
861 * ? echo "${ML}" | grep federez
862 ${FEDEREZDIR}.${ML_}/
864 # La ML modérateurs va dans le dossier Surveillance
866 * ^List-Id:.*moderateurs\.lists\.crans\.org
869 # La ML intranet-bugreport va dans le dossier Problèmes
871 * ^List-Id:.*intranet-bugreport\.lists\.crans\.org
874 # La ML nounou va dans le dossier Technique
876 * ^List-Id:.*nounou\.lists\.crans\.org
879 # La ML apprentis va dans le dossier Technique
881 * ^List-Id:.*apprentis\.lists\.crans\.org
884 #################################################################
885 ## Gestion des autres mailing-list (du campus) ##
886 #################################################################
887 # MLs génériques du campus (des assos et d'autres random trucs)
889 * ? grep "^${ML}$" ${CONFIGDIR}/ML_campus
890 ${MLCAMPUSDIR}.${ML_}/
894 * ? echo "${ML}" | grep bde
899 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_bda) || (echo "${ML}" | grep bda)
904 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_sono) || (echo "${ML}" | grep sono)
909 * ? echo "${ML}" | grep -E "^med"
914 * ? echo "${ML}" | grep sda
919 * ? echo "${ML}" | egrep "(bdl|interludes|kwei)"
924 * ? echo "${ML}" | egrep "bds"
929 * ^List-Id:.*wei\.lists\.crans\.org
934 * ? echo "${ML}" | egrep "(gala|geec)"
939 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_clubs) || (echo "${ML}" | egrep '^club-')
940 ${MLCLUBSDIR}.${ML_}/
942 #################################################################
943 ## Gestion des MLs de promo ##
944 #################################################################
946 * ? echo "${ML}" | egrep '^(ens-|a\.coeur)'
947 ${MLPROMODIR}.${ML_}/
949 #################################################################
950 ## Gestion des MLs perso ##
951 #################################################################
953 * ? grep "^${ML}$" ${CONFIGDIR}/ML_perso
954 ${MLPERSODIR}.${ML_}/
956 # Si on est tombés sur un ML non-répertoriée
958 ${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/
961 #~# # Décommenter pour activer le tri des mails envoyés par
962 #~# # Discourse. Attention, penser à décommener également
963 #~# # l'INCLUDERC de discourse.preprocessing
964 #~# # et lire https://wiki.crans.org/VieCrans/FichiersConfiguration#rc.2Fdiscourse
965 #~# # à propos de la remarque sur le module Perl à installer
966 #~# INCLUDERC=${CONFIGDIR}/discourse.rules
968 #################################################################
969 ## Gestion des mailing-listes FedeRez ##
970 #################################################################
972 * ^List-Id:.*federez.net
974 # On veut ne garder que le nom de la ML sans le nom de domaine
975 ML=`echo "${ML}" | sed 's/\(\.lists\)\?\.federez\.net//'`
976 # On prend garde à ne pas créer un sous-dossier
977 # si jamais le List-Id contient un . ou un espace
978 ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'`
980 # Gestion de la ML admin
985 * ^Subject:.*Logwatch for.*federez\.net
986 ${FEDEREZLOGWATCHDIR}/
990 ${FEDEREZLOGCHECKDIR}/
993 * ^Subject:.*Debian package update
997 * ^From:.*federezpasswords
998 ${FEDEREZPASSWORDSDIR}/
1001 * ^From:.*support@ovh.com
1009 ${FEDEREZDIR}.${ML_}/
1012 #################################################################
1013 ## Gestion des autres mailing-listes ##
1014 #################################################################
1015 # On récupère le nom de domaine et le nom de la ML
1016 # Le nom de domaine, c'est le mot (sans .) qui précède le TLD
1017 DOMAIN=`echo "${ML}" | sed 's/.*\.\([^\.]\+\)\.[^\.]\+$/\1/'`
1018 # On ne sait jamais ce qu'on peut rencontrer…
1019 DOMAIN_=`echo "${DOMAIN}" | sed 's/ /_/g'`
1020 # On vire le domain et le TLD
1021 # On vire .list ou .lists si c'est la composante la plus à droite
1023 # On prend garde à ne pas créer un sous-dossier
1024 # si jamais le List-Id contient un . ou un espace
1025 ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.lists\?$//;s/\(\.\| \)/_/g'`
1027 ${MLDIR}.${DOMAIN_}.${ML_}/
1030 #~# # Fichier de règles de faible priorité à personnaliser
1031 #~# INCLUDERC="${CONFIGDIR}/custom.final.rules"