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