Éric Jacoboni a contribué cette section sur l'utilisation de Gnus conjointement à Procmail. Gnus est suffisamment important et puissant pour qu'on doive le configurer de manière à l'utiliser proprement avec procmail.
Gnus permet de créer de façon simple des dossiers de courrier selon les critères de votre choix : il suffit d'utiliser la fontion nnmail-split-methods et de spécifier, pour chaque dossier, l'expression rationnelle sur laquelle on se basera pour classer un courrier dans celui-ci.
Voici, par exemple, ce que pourrait contenir un .gnus pour activer cette possibilité :
;; On utilise le backend nnml pour le courrier (car par défaut,
;; Gnus lit les news...)
(setq
gnus-secondary-select-methods '((nnml ""))
mail-sources
'((directory
:path "~/incoming/" ;; cf. variable MAILDIR de .procmailrc
:suffix "" )
)
)
Ici, nous avons choisi d'utiliser le répertoire incoming comme source de courrier, c'est celui où procmail range ses dossiers. Gnus transférera alors les courriers dans les répertoires correspondants de Mail (c'est le répertoire par défaut).
Toutefois, cette méthode a quelques inconvénients : le principal est qu'elle fait double emploi si l'on utilise déjà procmail pour, par exemple, mettre aux oubliettes des courriers de provenance douteuse, ou pour supprimer les doublons (voir précédemment). Un autre inconvénient est qu'elle est propre à Gnus, ce qui rend obsolètes tous ces dossiers si l'on décide de changer de MUA (mais quelle idée saugrenue...).
Pour cette raison, il est plus sage de configurer Gnus pour qu'il utilise procmail pour gérer ces dossiers :
;; Utilisation du backend nnml avec procmail
;; nnmail-procmail-directory correspond à la variable MAILDIR
;; de votre .procmailrc
(setq
gnus-secondary-select-methods '((nnml ""))
gnus-use-procmail t
nnmail-spool-file "procmail"
nnmail-procmail-directory "~/incoming/"
nnmail-procmail-suffix ""
)
;; Pour les nouvelles versions de Gnus (>= 5.8.7)
(setq mail-sources
(list '(directory
:path "~/incoming/"
:suffix ""
)
)
)
et c'est tout... Gnus utilisera les règles définies dans votre .procmailrc pour créer ses dossiers de courrier.
Le principe est simple : lorsque vous lancerez Gnus, celui-ci ira consulter ~/incoming où doivent se trouver les différents fichiers créés par procmail. Si ces fichiers ne sont pas vides, il les lit et transfère les courriers qu'ils contiennent dans les sous-répertoires de ~/Mail en créant un fichier par courrier. Après cette étape, les fichiers de ~/incoming sont donc tous vides.
Si vous avez, par exemple, les règles suivantes dans votre .procmailrc :
# *FreeBSD-Stable :0 * ^TO.*stable@FreeBSD FreeBSD-Stable # *Systeme :0 * From:.*(root|news)@chezmoi Systeme # *Perso :0 * ^TO.*moi Perso # *Le-reste :0 * ^TO.* Le-Reste
vous aurez les fichiers ~/incoming/FreeBSD-Stable, ~/incoming/Systeme, ~/incoming/Perso et ~/incoming/Le-Reste qui se rempliront au fur et à mesure que vous recevez des messages correspondant aux règles ci-dessus. En lançant Gnus, celui-ci créera (si ce n'est déjà fait) les répertoires ~/Mail/FreeBSD-Stable, ~/Mail/Systeme, ~/Mail/Perso et ~/Mail/Le-Reste et chacun d'eux contiendra des fichiers portant des noms sur le même principe qu'un spool de news :
% ls -l ~/incoming/Perso
-rw------- 1 moi moi 0 26 jul 14:05 /home/moi/incoming/Perso
^^^
% ls ~/Mail/Perso
1 11 13 2 4 6 8
10 12 14 3 5 7 9
L'avantage de cette méthode est de centraliser le triage du courrier en un
seul endroit : .procmailrc . D'autre part, procmail
dispose de moyens bien plus perfectionnés pour spécifier les expressions
rationnelles (la macro ^TO_, notamment).
Par contre, Gnus considérera que chaque fichier de ~/incoming contient une liste de courriers : si vous avez donc créé un fichier msgid.cache dans ce répertoire avec la règle
:0 Wh: msgid.lock | formail -D 8192 msgid.cache
vue plus haut, Gnus se plaindra que ce dossier n'est pas au bon format. Pour régler ce problème, il suffit de modifier cette entrée en :
:0 Wh: msgid.lock | formail -D 8192 /tmp/msgid.cache
ce qui a l'avantage supplémentaire de nettoyer ce fichier à chaque redémarrage de votre système (s'il est configuré pour nettoyer /tmp).
Ressources :
Comme d'habitude, le fichier info de Gnus donne tous les renseignements (Rubrique 'Select Methods' -> 'Getting Mail' -> 'Mail and Procmail').
La Faq Gnus (http://www.ccs.neu.edu/software/contrib/gnus/contient également une rubrique sur cette configuration (contribution de Randal Schwartz).
Gnus RuLeZ !