--- /dev/null
+# Complémentaire au .procmailrc générique mis à votre disposition
+# par les gentils membres actifs du Cr@ns
+# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
+# Des questions, des suggestions : {nounou,ca}@lists.crans.org
+# Licence : WTFPL
+
+# Ce fichier doit être exécuté pour que discourse.rules puisse
+# trier correctement les mails de Discourse
+
+#------------------------------------------------------------------------------
+
+#################################################################
+## Variables ##
+#################################################################
+
+### Dossier sous lequel l'arborescence des mails envoyés par
+### Discourse sera rangée
+DISCOURSEDIR=.Discourse
+
+#################################################################
+## Préprocessing ##
+#################################################################
+# On redécode le champ List-ID, mais cette fois-ci en en retirant
+# les accents potentiels.
+:0
+LISTID=| formail -cXList-ID: | perl -MEncode -MText::Unaccent::PurePerl -pE '$_=encode("utf-8",unac_string(decode("MIME-Header", $_)))'
--- /dev/null
+# Complémentaire au .procmailrc générique mis à votre disposition
+# par les gentils membres actifs du Cr@ns
+# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
+# Des questions, des suggestions : {nounou,ca}@lists.crans.org
+# Licence : WTFPL
+
+# Ce fichier permet de trier les mails envoyés par Discourse
+
+#------------------------------------------------------------------------------
+
+#################################################################
+## Gestion des mails de Discourse ##
+#################################################################
+:0
+* ML ?? discourse\.crans\.org$
+{
+ ML=`echo ${ML} | sed 's/discourse\.crans\.org$//;s/\.$//'`
+ # Le List-ID de Discourse est dans l'ordre sous-catégorie.catégorie
+ # pour une arborescence mail, on veut l'ordre inverse
+ ML=`echo ${ML} | sed "s/\./\n/g" | tac | paste -sd "."`
+
+ # On veut s'assurer ML contient encore quelque chose (c'est-à-dire,
+ # n'était pas juste discourse.crans.org sans rien avant)
+ :0
+ * ? echo $ML
+ * ? test -n "${ML}"
+ ${DISCOURSEDIR}.${ML}/
+
+ # Dossier par défaut
+ :0
+ ${DISCOURSEDIR}/
+}
+
* ^Subject:
SUBJECT=| formail -cXSubject: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
-
+:0
+* ^List-ID:
+LISTID=| formail -cXList-ID: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
+#~# # Pour faire fonctionner correctement le tri des mails envoyés par Discourse,
+#~# # Décommenter le INCLUDERC suivant
+#~# INCLUDERC="${CONFIGDIR}/discourse.preprocessing"
################################################################################
##### Règles #####
:0
# On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML
-* ^List-Id:.*\/<[^<>]+>$
+* ^List-Id:.*
{
- ML=$MATCH
- ML=`echo "${ML}" | sed 's/<//;s/>//'`
+ ML=`echo "${LISTID}" | sed 's/[^<]*<//;s/>//'`
#################################################################
## Gestion des mailing-listes Cr@ns ##
${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/
}
+ #~# # Décommenter pour activer le tri des mails envoyés par
+ #~# # Discourse. Attention, penser à décommener également
+ #~# # l'INCLUDERC de discourse.preprocessing
+ #~# # et lire https://wiki.crans.org/VieCrans/FichiersConfiguration#rc.2Fdiscourse
+ #~# # à propos de la remarque sur le module Perl à installer
+ #~# INCLUDERC=${CONFIGDIR}/discourse.rules
+
#################################################################
## Gestion des mailing-listes FedeRez ##
#################################################################