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