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