]> gitweb.pimeys.fr Git - config-20-100.git/blob - .procmailrc
[procmail] Goto prod
[config-20-100.git] / .procmailrc
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
5 # Licence : WTFPL
6
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.
9
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
12
13 #################################################################
14 ## DISCLAIMER ##
15 #################################################################
16
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 responsable 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)
24
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.
31
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
45
46
47
48 ################################################################################
49 ##### Commentaires #####
50 ################################################################################
51 #
52 # Les tags suivants expliquent quels membres actifs reçoivent quels mails :
53 # $: câbleur/imprimeur
54 # *: apprenti
55 # +: nounou
56 # B: bureau
57 # T: trésorier
58 # M: modérateur
59 # F: admin federez
60 #
61 #
62 # Si vous utilisez ce .procmailrc (et que vous recevez tous les mails concernés),
63 # votre arborescence ressemblera à ceci :
64 #
65 # Cr@ns
66 # |
67 # |-[$*+BT] Administratif (le côté administratif : bot-free !)
68 # | |
69 # | |-[$*+BT] privé (des informations confidentielles peuvent y circuler)
70 # | | |
71 # | | |-[B] bureau
72 # | | |-[B] crous-crans
73 # | | |-[+B] disconnect
74 # | | |-[$*+] impression (sans modif_solde, munin, print_status)
75 # | | |-[$*+] respbats (bot-free)
76 # | | |-[+B] spoof
77 # | | |-[T] trésorier
78 # | |
79 # | |-[$*+B] public
80 # | |
81 # | |-[$*+B] ca
82 # | |-[+B] dsi-crans
83 # | |-[*+B] install-party
84 # |
85 # |
86 # |-[*+] Information (keep up to date)
87 # | |
88 # | |-[*+] apt-listchanges (Lors des mises à jour de serveurs)
89 # | |
90 # | |-[+] bcfg2 (Serveurs non synchronisés avec bcfg2)
91 # | |
92 # | |-[*+] darcs (records)
93 # | | |
94 # | | |-[*+] whatsnew
95 # | |
96 # | |-[*+] git (commits)
97 # | | |
98 # | | |-[*+] whatsnew
99 # | |
100 #  | |-[+] inn (stats des servuers de news)
101 # | |
102 # | |-[$*+] machines_supprimees (puni !)
103 # | |
104 # | |-[+] ovh (Factures, Newsletters)
105 # |
106 # |
107 # |-[*+] Monitoring (une machine fait-elle de la merde ?)
108 # | |
109 # | |-[+] Arpwatch (chaque fois qu'une machine fait un truc nouveau/suspect sur le réseau)
110 # | | |
111 # | | |-[+] changed_ethernet_address
112 # | | |-[+] flip_flop
113 # | | |-[+] new_activity
114 # | | |-[+] new_station
115 # | |
116 # | |-[*+] Monit (Un truc marche pas/remarche, un disque est plein,…)
117 # | | |
118 # | | |- <un dossier par serveur>
119 # | |
120 # | |-[$*+] Munin (Graphes)
121 # | | |
122 # | | |-[$*+] Imprimante
123 # | |
124 # | |-[+] Nagios (Comme Monit, mais en mieux/moins bien/différent)
125 # | | |
126 # | | |- <un dossier pour tousles switchs et un dossier par serveur>
127 # | |
128 # | |-[+B] Stats-upload (Qui a uplodé ?)
129 # |
130 # |
131 # |-[$*+] Problems (Classés par degré de gravité grossier)
132 # | |
133 # | |-[*+] 0-Self-solving (Just ignore that)
134 # | | |
135 # | | |-[+] ftp (Problème de synchronisation du miroir Debian)
136 # | | |-[*+] SQL errors (sqlgrey a chié dans la colle)
137 # | |
138 # | |-[+] 1-Soft (Un problème, mais pas critique)
139 # | | |
140 # | | |-[*+] backuppc (babar râle)
141 # | | |-[+] Django
142 # | | |-[+] intranet1 (normal)
143 # | | |-[+] intranet2 (fucking locks)
144 # | |
145 # | |-[*+] 2-Wild (Ce serait pas mal de regarder ce qui foire)
146 # | | |
147 # |  | |-[*+] cron
148 # | | | |- <triés selon les cronjob souvent rencontrés listés dans le fichier cron.folders>
149 # | | |
150 # | | |-[+] gest_crans (Rapports de bugs envoyés lors d'un crash de gest_crans)
151 # | |
152 # | |-[*+] 3-Argh (Il faut vite faire quelque chose !)
153 # | | |
154 # | | |-[*+] nols (La baie de disque a un problème !)
155 # | | |-[*+] pulsar (On a plus de courant !!)
156 # | |
157 # | |-[$*+] 4-Human-made (Ces mails sont générés par des gens)
158 # | |
159 # | |
160 # | |-[+] Mailman (Des mailing-list chient, ou des gens demandent de l'aide)
161 # | |
162 # | |-[$*+] print_status (Une impression a échoué)
163 # |
164 # |
165 # |-[$*+BM] Surveillance (On stalke, pour vérifier ce que font les autres. Par ordre croissant d'importance à vérifier)
166 # | |
167 # | |-[+BM] 1-Moderateurs
168 # | |
169 # | |-[+] 2-OVH (Connexions au manager)
170 # | |
171 # | |-[*+] 3-Cameras (Quelqu'un est rentré dans un local sensible)
172 # | | |
173 # | | |-[*+] 0B
174 # | | |-[*+] 0H
175 # | |
176 # | |-[$*+] 4-LDAP (Modification de la base LDAP qui mérite un coup d'oeil)
177 # | | |
178 # | | |-[*+] Modification (Changement de droit ou modification d'une machine crans)
179 # | | |-[$*+] Solde (Modification d'un solde impression)
180 # | |
181 # | |-[+] 5-cranspasswords (Quand quelqu'un modifie un mot de passe chiffré)
182 # |
183 # |
184 # |-[$*+B] Technique (les discussions et les trucs reliés)
185 # |
186 # |-[$*+] Cablages (Il faut aller brancher un truc)
187 # |
188 # |-[*+] Freebox (Vous avez un message vocal)
189 # |
190 # |-[*+] Nounou
191 # |
192 # |-[+] root
193 # |
194 # |-[*+] roots
195 # |
196 # |-[*+B] tracker (Todolist)
197 #
198 # Federez (Les mails concernant l'asso FedeRez sont dans un dossier à part)
199 # |
200 # |-[*+BF] federez (La ML de discussion principale de FedeRez)
201 # |
202 # |-[F] admin (La ML de l'équipe technique de FedeRez)
203 #  | |
204 #  | |-[F] Debian updates (Quand un serveur veut être mis à jour)
205 #  | |
206 #  | |-[F] federezpasswords (Quand quelqu'un modifie un mot de passe chiffré)
207 #  | |
208 #  | |-[F] Logcheck (Spam)
209 #  | |
210 #  | |-[F] Logwatch (Spam)
211 # | |
212 # | |-[F] OVH (Factures, Newsletters)
213 # |
214 # |-[(F)] Monit (Pour voir si un serveur ne répond plus)
215 # |
216 # |-[(F)] saclay (Pour préparer notre avenir à Saclay)
217 #
218
219
220
221 ################################################################################
222 ##### Variables #####
223 ################################################################################
224
225 #################################################################
226 ## Variables d'environnement ##
227 #################################################################
228 # Path du dossier où sont rangés les mails
229 MAILDIR="${HOME}/Mail"
230 # Shell à utiliser pour exécuter des commandes
231 SHELL="/bin/bash"
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"
239
240
241 #################################################################
242 ## Noms de dossiers ##
243 #################################################################
244 # /Attention à ne pas mettre de . ou d'espace au mauvais endroit…/
245
246 ### Dossiers personnels
247 ## Dossier pour ranger les mails de Cron
248 ## (ceux envoyés par un serveur Cr@ns seront rangés ailleurs)
249 CRONPERSODIR=".Cron"
250
251 ## Dossier de Spam
252 SPAMDIR=".Spam"
253 # Spam reçu sur (usenet|news)@(crans.org|crans.ens-cachan.fr)
254 SPAMINNDIR="${SPAMDIR}.usenet"
255
256
257 ### Dossiers pour les MLs qui ne sont pas catchées par une autre règle
258 ## Dossier racine
259 MLDIR=".ML"
260 ## Dossier pour ranger les rappels de mots de passes envoyés par Mailman
261 RAPPELMDPDIR="${MLDIR}.rappels_mdp"
262
263
264 ### Dossiers pour les MLs du campus
265 MLCAMPUSDIR="${MLDIR}.Campus"
266 MLBDEDIR="${MLCAMPUSDIR}.BDE"
267 MLCLUBSDIR="${MLCAMPUSDIR}.Clubs"
268 MLMEDDIR="${MLCLUBSDIR}.Med"
269 MLBDLDIR="${MLCAMPUSDIR}.BDL"
270 MLBDADIR="${MLCAMPUSDIR}.BDA"
271 MLBDSDIR="${MLCAMPUSDIR}.BDS"
272 MLSDADIR="${MLCAMPUSDIR}.SDA"
273 MLGALADIR="${MLCAMPUSDIR}.Gala"
274 MLSONODIR="${MLCAMPUSDIR}.SoNo"
275
276 ## Dossier où atterrira une ML non-répertoriée
277 MLFAILSUFFIX="Fail"
278
279 ### Dossier pour les MLs de promo
280 MLPROMODIR="${MLDIR}.Promo"
281
282 ### Dossier pour les MLs non répertoriées plus haut et non-MA-crans
283 MLPERSODIR="${MLDIR}.Divers"
284
285 ### Dossiers pour les Membres Actifs du Cr@ns
286 ## Dossier racine
287 CRANSDIR=".Cr@ns"
288 ## Dossiers de mailing lists
289 CRANSADMINISTRATIFDIR="${CRANSDIR}.Administratif"
290 CRANSADMINISTRATIFPUBLICDIR="${CRANSADMINISTRATIFDIR}.public"
291 CRANSADMINISTRATIFPRIVATEDIR="${CRANSADMINISTRATIFDIR}.prive"
292
293 ## Dossiers pour les mails de monitoring
294 MONITORINGDIR="${CRANSDIR}.Monitoring"
295 MONITDIR="${MONITORINGDIR}.Monit"
296 NAGIOSDIR="${MONITORINGDIR}.Nagios"
297 NAGIOSSWITCHSDIR="${NAGIOSDIR}.0-switchs"
298 ARPWATCHDIR="${MONITORINGDIR}.Arpwatch"
299 MUNINDIR="${MONITORINGDIR}.Munin"
300 MUNINIMPRESSIONDIR="${MUNINDIR}.Imprimante"
301 STATUPLOADDIR="${MONITORINGDIR}.Stats-upload"
302
303 ## Dossiers pour le mails concernant des "problèmes"
304 # Racine
305 PROBLEMSDIR="${CRANSDIR}.Problems"
306 # Par ordre de gravité croissant
307 SELFSOLVINGDIR="${PROBLEMSDIR}.0-Self-solving"
308 SOFTDIR="${PROBLEMSDIR}.1-Soft"
309 WILDDIR="${PROBLEMSDIR}.2-Wild"
310 ARGHDIR="${PROBLEMSDIR}.3-Argh"
311 HUMANPROBLEMSDIR="${PROBLEMSDIR}.4-Human-made"
312 # Sous-dossiers
313 FTPDIR="${SELFSOLVINGDIR}.ftp"
314 SQLGREYDIR="${SELFSOLVINGDIR}.sql-errors"
315 BACKUPPCDIR="${SOFTDIR}.backuppc"
316 DJANGODIR="${SOFTDIR}.Django"
317 INTRANET2DIR="${SOFTDIR}.Intranet2"
318 INTRANET1DIR="${SOFTDIR}.intranet-bugreport"
319 CRONDIR="${WILDDIR}.cron"
320 GESTCRANSDIR="${WILDDIR}.gest_crans"
321 NOLSDIR="${ARGHDIR}.nols"
322 PULSARDIR="${ARGHDIR}.pulsar"
323 MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman"
324 PRINTSTATUSDIR="${HUMANPROBLEMSDIR}.print_status"
325 MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco"
326
327 ## Dossier de surveillance (= surveillance d'actions humaines)
328 # Racine
329 SURVEILLANCEDIR="${CRANSDIR}.Surveillance"
330 # Par ordre de sensibilité croissant
331 LOGCHECKDIR="${SURVEILLANCEDIR}.0-logcheck"
332 MODERATEURSDIR="${SURVEILLANCEDIR}.1-Moderateurs"
333 OVHMANAGERDIR="${SURVEILLANCEDIR}.2-OVH"
334 CAMERASDIR="${SURVEILLANCEDIR}.3-Cameras"
335 LDAPDIR="${SURVEILLANCEDIR}.4-LDAP"
336 LDAPSOLDEDIR="${LDAPDIR}.Solde"
337 LDAPMODIFDIR="${LDAPDIR}.Modification"
338 CRANSPASSWORDSDIR="${SURVEILLANCEDIR}.5-cranspasswords"
339
340 ## Dossier informatif (= pour se tenir au courant de ce qui se passe au Cr@ns)
341 # Racine
342 INFORMATIONDIR="${CRANSDIR}.Information"
343 # Mails d'ovh autre que les notifications de connexion au manager
344 OVHDIR="${INFORMATIONDIR}.OVH"
345 # apt-listchanges
346 APTLISTCHANGESDIR="${INFORMATIONDIR}.apt-listchanges"
347 # Machines supprimées pour chambre invalide
348 DELETEDMACHINES="${INFORMATIONDIR}.machines_supprimees"
349 # Repositories
350 GITDIR="${INFORMATIONDIR}.git"
351 DARCSDIR="${INFORMATIONDIR}.darcs"
352 # Mail envoyé quotidiennement par bcfg2 avec la liste des serveurs non synchro
353 BCFG2DIR="${INFORMATIONDIR}.bcfg2"
354 # Statistiques des serveurs de news
355 INNDIR="${INFORMATIONDIR}.inn"
356
357 ## Dossier de discussion techniques
358 # Racine
359 TECHNIQUEDIR="${CRANSDIR}.Technique"
360 # Mails de roots@ non catchées avant
361 ROOTSDIR="${TECHNIQUEDIR}.roots"
362 # Mails de câblages demandé/effectué
363 CABLAGEDIR="${TECHNIQUEDIR}.Cablages"
364 # Mails du tracker
365 TRACKERDIR="${TECHNIQUEDIR}.Tracker"
366 # Mails de la ML nounou
367 NOUNOUDIR="${TECHNIQUEDIR}.Nounou"
368 # Messages laissés sur la Freebox
369 FREEBOXDIR="${TECHNIQUEDIR}.Freebox"
370 # Dossier où atterriront les mails de root@ non triés
371 ROOTDEFAULTDIR="${TECHNIQUEDIR}.root"
372
373 ### Dossier racine pour Federez
374 FEDEREZDIR=".FedeRez"
375 FEDEREZMONITDIR="${FEDEREZDIR}.Monit"
376 FEDEREZADMINDIR="${FEDEREZDIR}.admin"
377 FEDEREZLOGWATCHDIR="${FEDEREZADMINDIR}.Logwatch"
378 FEDEREZLOGCHECKDIR="${FEDEREZADMINDIR}.Logcheck"
379 FEDEREZDEBIANDIR="${FEDEREZADMINDIR}.Debian-updates"
380 FEDEREZPASSWORDSDIR="${FEDEREZADMINDIR}.federezpasswords"
381 FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH"
382
383
384
385 ################################################################################
386 ##### Règles #####
387 ################################################################################
388
389 #~# # Patch pour traiter les mails qui ont été
390 #~# # reçus avant le 30/06/13, car certaines règles de tri du .procmailrc
391 #~# # n'étaient pas encore valables à l'époque.
392 #~# # très utile si on veut retrier tous ses mails
393 #~# INCLUDERC="${CONFIGDIR}/retrocompatibility_patch.rules"
394
395 #~# # Fichier de règles prioritaires à personnaliser
396 #~# INCLUDERC="${CONFIGDIR}/custom.high.rules"
397
398 #################################################################
399 ## Gestion des mails d'Arpwatch ##
400 #################################################################
401 :0
402 * ^From:.*arpwatch@crans\.org
403 {
404 # On trie les différents types de mails d'Arpwatch,
405 # en faisant attention aux . et aux espaces après avoir éliminé
406 # tout ce qui se trouve après " (".
407 :0
408 * ^Subject: \/.* \(
409 {
410 TYPE=`echo $MATCH | sed 's/ (.*//;s/\( \|\.\)/_/g;'`
411 :0
412 ${ARPWATCHDIR}.${TYPE}/
413 }
414
415 :0
416 ${ARPWATCHDIR}/
417 }
418
419
420 #################################################################
421 ## Gestion des mails de Monit ##
422 #################################################################
423
424 # Les mails de Monit à propos du serveur A sont envoyés dans le dossier
425 # ${MONITDIR}.A/ si le dossier n'existe pas, il est créé mais il
426 # faut encore s'y abonner...
427 :0
428 * ^(X-Mailer|User-Agent):.*monit
429 {
430 # Avant de tester les hostnames Cr@ns, règle spéciale utile pour
431 # certains admin de FedeRez
432 :0
433 * ^To: federez-monit@
434 ${FEDEREZMONITDIR}/
435
436 :0
437 * ^Subject:.*monit \/[^ \.]+
438 ${MONITDIR}.${MATCH}/
439
440 # Dossier de Monit par défaut, si Monit se met à envoyer d'autres mails
441 :0
442 ${MONITDIR}/
443 }
444
445
446 #################################################################
447 ## Gestion des mails de Nagios ##
448 #################################################################
449
450 # Les mails de Nagios à propos du serveur A sont envoyés dans le dossier
451 # ${NAGIOSDIR}.A/ si le dossier n'existe pas, il est créé mais il
452 # faut encore s'y abonner
453 :0
454 * ^(From: nagios@crans\.org|User-Agent:.*nagios)
455 {
456 # Tous les switchs vont dans le dossier ${NAGIOSSWITCH}
457 :0
458 * ^Subject:.*Alert: bat[^/]+-
459 ${NAGIOSSWITCHSDIR}/
460
461 # Chaque serveur a son dossier
462 :0
463 * ^Subject:.*Alert: \/[^/\.]+
464 ${NAGIOSDIR}.${MATCH}/
465
466 # Si l'envie prenait à Nagios de raconter un peu plus sa vie
467 :0
468 ${NAGIOSDIR}/
469 }
470
471
472 #################################################################
473 ## Gestion des mails de Cron ##
474 #################################################################
475
476 # Attention, si on enlève la ligne qui filtre sur le To:, on catche
477 # aussi tous les mails Cron qui ne sont pas envoyés par un serveur Cr@ns
478 :0
479 * ^To:.*(roots?|postgres|www-data|list)@crans\.org
480 * ^(X-Cron-Env|From: Anacron)
481 {
482 #~# # Par défaut, on ne trie pas les mails de Cron, pensez à décommenter
483 #~# # le INCLUDERC (et à copier le fichier complémentaire) pour les trier
484 #~# INCLUDERC=${CONFIGDIR}/cron.rules
485
486 :0
487 ${CRONDIR}/
488 }
489
490
491 #################################################################
492 ## Gestion des mails de root@crans.org ##
493 #################################################################
494
495 # Statistiques du serveur de news
496 # Désolidarisé du bloc root@crans.org pour séparer les spams
497 # sans qu'ils tombent dans ${ROOTDEFAULTDIR}
498 :0
499 * ^To:.*(usenet|news)@(crans\.org|crans\.ens-cachan\.fr)
500 {
501 # L'intérêt c'est que plein de spam arrive sur ces addresses
502 # et seules les stats d'inn sont censées y arriver.
503 # Donc on peut bazarder tout ce qui n'est pas stat au Spam
504 :0
505 * ^From: news@crans.org
506 ${INNDIR}/
507
508 :0
509 ${SPAMINNDIR}/
510 }
511
512 # On matche tous les alias de root@crans.org
513 :0
514 * ^(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)
515 {
516 # Spam de logcheck
517 :0
518 * ^From:.*logcheck@crans\.org
519 ${LOGCHECKDIR}/
520
521 # Mails envoyés par munin quand il trouve qu'un graphe sort des limites
522 :0
523 * ^From: munin@crans\.org
524 ${MUNINDIR}/
525
526 # Mails envoyés en cas d'erreur de synchronisation du ftp
527 :0
528 * ^From: mirror@crans\.org
529 ${FTPDIR}/
530
531 # Mails envoyés en cas d'erreur sur l'intranet2
532 :0
533 * ^Subject: \[Intranet2 Cr@ns\]
534 ${INTRANET2DIR}/
535
536 # Mails envoyés en cas d'une autre erreur Django
537 :0
538 * ^Subject: \[Django\]
539 ${DJANGODIR}/
540
541 # Mails envoyés lors de la modification d'un fichier de mot de passe
542 :0
543 * ^X-Mailer: cranspasswords
544 ${CRANSPASSWORDSDIR}/
545
546 # Mails envoyés par OVH…
547 :0
548 * ^From:.*support@ovh\.com
549 {
550 # …lors d'une connexion au manager
551 :0
552 * ^X-Ovh-Template: nic/fr/loginNotification.model
553 ${OVHMANAGERDIR}/
554
555 # Pour autre chose (facture, newsletter)
556 :0
557 ${OVHDIR}/
558 }
559
560 # Mail envoyés par apt-listchanges lors d'une mise à jour
561 :0
562 * ^Subject:.*apt-listchanges
563 ${APTLISTCHANGESDIR}/
564
565 # Mail envoyé quand gest_crans plante
566 :0
567 * ^Subject: Bugreport gest_crans.py
568 ${GESTCRANSDIR}/
569
570 # Tout ce qui traîne sur root et qui n'est pas catché par quelque chose
571 :0
572 ${ROOTDEFAULTDIR}/
573 }
574
575
576 #################################################################
577 ## Gestion des mails de roots@crans.org ##
578 #################################################################
579
580 :0
581 * ^(To|Cc|List-Id):.*roots(@|\.lists\.)crans\.org
582 {
583 # Il y a aussi des apt-listchanges sur roots@
584 :0
585 * ^Subject:.*apt-listchanges
586 ${APTLISTCHANGESDIR}/
587
588 # Mails envoyés par la baie de disques
589 :0
590 * ^From: nols@crans\.org
591 ${NOLSDIR}/
592
593 # Mails envoyés par l'onduleur
594 :0
595 * ^From: pulsar@adm\.crans\.org
596 ${PULSARDIR}/
597
598 # Mails envoyés par le script qui détecte les changements dans la base LDAP
599 :0
600 * ^Subject:.*Surveillance modifications de la base LDAP
601 ${LDAPMODIFDIR}/
602
603 # Mails envoyés lors d'une erreur sur la base de donnée sqlgrey
604 :0
605 * ^From: sqlgrey@crans\.org
606 ${SQLGREYDIR}/
607
608 # Mails envoyés par backuppc
609 :0
610 * ^From: backuppc@crans\.org
611 ${BACKUPPCDIR}/
612
613 # Souriez, vous êtes photographiés
614 :0
615 * ^From:.*cameras@crans\.org
616 {
617 # On trie par lieu de la caméra
618 :0
619 * ^Subject:.*0B
620 ${CAMERASDIR}.0B/
621
622 :0
623 * ^Subject:.*0H
624 ${CAMERASDIR}.0H/
625 }
626
627 # I'm in your mailbox, watching your commits
628 # Attention à bien filtrer git avant darcs parce que les mails git
629 # contiennent aussi le header X-DarcsInfo !
630 :0
631 * ^X-GitInfo
632 {
633 :0
634 * ^X-Mailer: /usr/scripts/utils/git-whatsnew
635 ${GITDIR}.whatsnew/
636
637 :0
638 ${GITDIR}/
639 }
640 :0
641 * ^X-DarcsInfo
642 {
643 :0
644 * ^X-Mailer: Python Darcs Check
645 ${DARCSDIR}.whatsnew/
646
647 :0
648 ${DARCSDIR}/
649 }
650
651 # Tracker
652 :0
653 * ^X-Mailer:.*Redmine
654 ${TRACKERDIR}/
655
656 # Messages sur la Freebox
657 :0
658 * ^From: telephonie.freebox@freetelecom.fr
659 ${FREEBOXDIR}/
660
661 # Serveurs non synchronisés avec bcfg2
662 :0
663 * ^X-Mailer: bcfg2-reports
664 ${BCFG2DIR}/
665
666 # Si il n'y pas de condition de tri, ça va dans le dossier Technique
667 :0
668 ${ROOTSDIR}/
669 }
670
671
672 #################################################################
673 ## Mails envoyés sur des MLs mais par des bots ##
674 #################################################################
675 # Il n'y jamais de dossier par défaut, le mail sera rattrapé
676 # au moment de la gestion gobale des mailing-lists
677
678 # Sur la ML disconnect@
679 :0
680 * ^List-Id:.*disconnect\.lists\.crans\.org
681 {
682 # Statistiques d'upload
683 :0
684 * ^X-Mailer: /usr/scripts/surveillance/statistiques.py
685 ${STATUPLOADDIR}/
686
687 :0
688 * ^Subject:.*fois.*en un mois
689 ${MULTIDECODIR}/
690 }
691
692 # Câblage demandé/effectué
693 :0
694 * ^X-Crans-Intranet: cablage
695 ${CABLAGEDIR}/
696
697 # Sur la ML impression@
698 :0
699 * ^List-Id:.*impression\.lists\.crans\.org
700 {
701 # Modification de solde
702 :0
703 * ^X-Mailer: modif_solde
704 ${LDAPSOLDEDIR}/
705
706 # Informations de print_status
707 :0
708 * ^X-Mailer: /usr/scripts/impression/print_status.py
709 ${PRINTSTATUSDIR}/
710
711 # Munin stock papier et toners
712 :0
713 * ^From: munin@crans\.org
714 ${MUNINIMPRESSIONDIR}/
715 }
716
717 # Sur la ML respbats@
718 :0
719 * ^List-Id:.*respbats\.lists\.crans\.org
720 {
721 # Machines supprimées pour chambre invalide
722 :0
723 * ^X-Mailer: /usr/scripts/gestion/chambres_vides.py
724 ${DELETEDMACHINES}/
725 }
726
727
728 #################################################################
729 ## Gestion des cron perso ##
730 #################################################################
731 # Les Subjects des mails de (Ana)?Cron
732 # sont de la forme "Cron <user@host>" ou "Anacron job '[...]' on host"
733 # On parse pour récupérer le host et trier avec
734 :0
735 * ^(X-Cron-Env|From: Anacron)
736 {
737 # Si le mail vient de "host.domain.tld",
738 # On range ça dans le dossier "host"
739 :0
740 * ^Subject:.*(Cron <[^@>]+@\/[^>]+|Anacron job .* on \/.*)
741 {
742 # On prend garde à ne pas créer un sous-dossier
743 # si jamais le host contient un . ou un espace
744 HOST_=`echo "$MATCH" | sed 's/\(\.\| \)/_/g'`
745 :0
746 ${CRONPERSODIR}.${HOST_}/
747 }
748
749 # Dans le cas (improbable) où le Subject ne matche pas
750 :0
751 ${CRONPERSODIR}/
752 }
753
754
755 #################################################################
756 ## Inclusion des règles personnelles ##
757 #################################################################
758 #~# # Fichier de règles à personnaliser
759 #~# INCLUDERC="${CONFIGDIR}/custom.normal.rules"
760
761 #################################################################
762 ## Gestion des mails de Mailman ##
763 #################################################################
764 # La ML mailman@ est un peu particulière
765 :0
766 * ^(List-Id:.*mailman\.|(To|Cc):.*mailman-(owner|bounces)@)lists\.crans\.org
767 {
768 :0
769 * ^Subject:.*Rappel_pour_les_abonnements_aux_listes
770 ${RAPPELMDPDIR}/
771
772 :0
773 ${MAILMANDIR}/
774 }
775
776
777 #################################################################
778 ## Gestion des mailing-listes ##
779 #################################################################
780 # Ajouter à la suite vos propres règles pour les mailing-listes non gérées ici
781
782 :0
783 # On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML
784 * ^List-Id:.*\/<[^<>]+>$
785 {
786 ML=$MATCH
787 ML=`echo "${ML}" | sed 's/<//;s/>//'`
788
789 #################################################################
790 ## Gestion des mailing-listes Cr@ns ##
791 #################################################################
792 :0
793 * ^List-Id:.*lists\.crans\.org
794 {
795 # On veut ne garder que le nom de la ML sans le nom de domaine
796 ML=`echo "${ML}" | sed 's/\.lists\.crans\.org//'`
797 # On prend garde à ne pas créer un sous-dossier
798 # si jamais le List-Id contient un . ou un espace
799 ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'`
800
801 #################################################################
802 ## Cas où la ML est une ML de membre actif du Cr@ns ##
803 #################################################################
804
805 # MLs publiques (au sens où il n'y a pas que des cranseux abonnés)
806 :0
807 * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.public
808 ${CRANSADMINISTRATIFPUBLICDIR}.${ML_}/
809
810 # MLS où il n'y a que des membres actifs abonnés
811 # (on peut y envoyer des informations privées)
812 :0
813 * ? grep "^${ML}$" ${CONFIGDIR}/ML_MA_crans.administratif.prive
814 ${CRANSADMINISTRATIFPRIVATEDIR}.${ML_}/
815
816 # La ML federez@lists.crans.org va quand même dans le dossier FedeRez
817 :0
818 * ? echo "${ML}" | grep federez
819 ${FEDEREZDIR}.${ML_}/
820
821 # La ML modérateurs va dans le dossier Surveillance
822 :0
823 * ^List-Id:.*moderateurs\.lists\.crans\.org
824 ${MODERATEURSDIR}/
825
826 # La ML intranet-bugreport va dans le dossier Problèmes
827 :0
828 * ^List-Id:.*intranet-bugreport\.lists\.crans\.org
829 ${INTRANET1DIR}/
830
831 # La ML nounou va dans le dossier Technique
832 :0
833 * ^List-Id:.*nounou\.lists\.crans\.org
834 ${NOUNOUDIR}/
835
836 #################################################################
837 ## Gestion des autres mailing-list (du campus) ##
838 #################################################################
839 # MLs génériques du campus (des assos et d'autres random trucs)
840 :0
841 * ? grep "^${ML}$" ${CONFIGDIR}/ML_campus
842 ${MLCAMPUSDIR}.${ML_}/
843
844 # MLs BDE
845 :0
846 * ? echo "${ML}" | grep bde
847 ${MLBDEDIR}.${ML_}/
848
849 # MLs BDA
850 :0
851 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_bda) || (echo "${ML}" | grep bda)
852 ${MLBDADIR}.${ML_}/
853
854 # MLs SoNo
855 :0
856 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_sono) || (echo "${ML}" | grep sono)
857 ${MLSONODIR}.${ML_}/
858
859 # MLs Med
860 :0
861 * ? echo "${ML}" | grep med
862 ${MLMEDDIR}.${ML_}/
863
864 # MLs SDA
865 :0
866 * ? echo "${ML}" | grep sda
867 ${MLSDADIR}.${ML_}/
868
869 # MLs BDL
870 :0
871 * ? echo "${ML}" | egrep "(bdl|interludes)"
872 ${MLBDLDIR}.${ML_}/
873
874 # MLs BDS
875 :0
876 * ? echo "${ML}" | egrep "bds"
877 ${MLBDSDIR}.${ML_}/
878
879 # MLs Gala
880 :0
881 * ? echo "${ML}" | egrep "(gala|geec)"
882 ${MLGALADIR}.${ML_}/
883
884 # MLs des clubs
885 :0
886 * ? (grep "^${ML}$" ${CONFIGDIR}/ML_clubs) || (echo "${ML}" | egrep '^club-')
887 ${MLCLUBSDIR}.${ML_}/
888
889 #################################################################
890 ## Gestion des MLs de promo ##
891 #################################################################
892 :0
893 * ? echo "${ML}" | egrep '^(ens-|a\.coeur)'
894 ${MLPROMODIR}.${ML_}/
895
896 #################################################################
897 ## Gestion des MLs perso ##
898 #################################################################
899 :0
900 * ? grep "^${ML}$" ${CONFIGDIR}/ML_perso
901 ${MLPERSODIR}.${ML_}/
902
903 # Si on est tombés sur un ML non-répertoriée
904 :0
905 ${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/
906 }
907
908 #################################################################
909 ## Gestion des mailing-listes FedeRez ##
910 #################################################################
911 :0
912 * ^List-Id:.*federez.net
913 {
914 # On veut ne garder que le nom de la ML sans le nom de domaine
915 ML=`echo "${ML}" | sed 's/\(\.lists\)\?\.federez\.net//'`
916 # On prend garde à ne pas créer un sous-dossier
917 # si jamais le List-Id contient un . ou un espace
918 ML_=`echo "${ML}" | sed 's/\(\.\| \)/_/g'`
919
920 # Gestion de la ML admin
921 :0
922 * ^List-Id:.*admin
923 {
924 :0
925 * ^Subject:.*Logwatch for.*federez\.net
926 ${FEDEREZLOGWATCHDIR}/
927
928 :0
929 * ^To:.*logcheck
930 ${FEDEREZLOGCHECKDIR}/
931
932 :0
933 * ^Subject:.*Debian package update
934 ${FEDEREZDEBIANDIR}/
935
936 :0
937 * ^From:.*federezpasswords
938 ${FEDEREZPASSWORDSDIR}/
939
940 :0
941 * ^From:.*support@ovh.com
942 ${FEDEREZOVHDIR}/
943
944 :0
945 ${FEDEREZADMINDIR}/
946 }
947
948 :0
949 ${FEDEREZDIR}.${ML_}/
950 }
951
952 #################################################################
953 ## Gestion des autres mailing-listes ##
954 #################################################################
955 # On récupère le nom de domaine et le nom de la ML
956 DOMAIN=`echo "${ML}" | sed 's/.*\.\([^\.]\+\)\.[^\.]\+$/\1/'`
957 # On ne sait jamais ce qu'on peut rencontrer…
958 DOMAIN_=`echo "${DOMAIN}" | sed 's/ /_/g'`
959 # On prend garde à ne pas créer un sous-dossier
960 # si jamais le List-Id contient un . ou un espace
961 ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.lists\?$//;s/\(\.\| \)/_/g'`
962 :0
963 ${MLDIR}.${DOMAIN_}.${ML_}/
964 }
965
966 #~# # Fichier de règles de faible priorité à personnaliser
967 #~# INCLUDERC="${CONFIGDIR}/custom.final.rules"