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