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