| Linuxman - juillet 2000 |
| 1 7 2000 |
Nul besoin de préciser que le monde des lecteurs de mail est un monde cruel, surtout par la chaleur du mois de juillet (le rapport ? ), où se battent en duel pine, mutt, netscape, kmail, deux trois screenshots d'Évolution, les plus basiques elm et mail, et tout une ribambelles de contestants... Personnellement j'ai commencé avec elm, pour ensuite passer à netscape, pendant pas mal de temps, d'ailleurs, jusqu'a ce que ses aleatoires plantages ne m'incite à changer pour pine, pas mal de temps aussi ; puis c'est mutt qui me séduit, avant que je ne fasse le pas vers mon dernier amour, le sus-nommé gnus.
Je dois bien cependant reconnaître pas mal de qualité à mutt, léger, rapide, configurable, supporte les threads, affiche plein de jolies couleurs, fonctionne en texte, que demander de plus ? Peut-être un peu plus de souplesse pour la gestion de grande quantité de mails. mutt est parfait jusqu'a une centaine de mail par jour, au delà je trouve que le fait de ne pas pouvoir ouvrir plusieurs fenêtre sur les mails autrement qu'en lançant une nouvelle session, et la gestion des nouveaux messages le rendent un peu limité, mais cela n'engage que moi, finalement...Tout cela pour dire que j'utilise maintenant gnus, un module mail sous emacs. Je lui reprocherai tout de suite une certaine lenteur, qui empêche d'utiliser efficacemment les fonctions de scores, par exemple, sur une config un peu limite (ca va sur un PIII 500, c'est plus limite sur un K6 233).
Installation
Donc une fois l'archive décompressée, un coup de configure, édition du Makefile, pour y mettre entre autre le chemin des fichiers lisp générés (/usr/local/share/emacs/site-lisp pour moi) et puis on contruit tout ca en faisant gaffe de spécifier si vous voulez utiliser emacs ou Xemacs en tapant respectivement make ou make EMACS=xemacs. Puis on installe tout cela tranquille avec un petit make install et le tour est joué.
Configuration
Bon maintenant c'est bien joli tout ça, mais c'est pas pour autant que vous maîtriserez gnus les doigts dans le nez, parce qu'il faudra apprendre deux trois raccourcis sympathiques avant de pouvoir le mettre en prod. Un fois dans emacs, on lance le bestio avec M-x gnus, pour se retrouver sous l'écran principal, à savoir celui des groupes. Et on causera de l'utilisation une prochaine fois, parce que trop n'est pas mieux que peu. Sur ce, salutations...
Warly Home Page
Generated 2000-07-02, 11h31
Mail
Première étape, récupérer les sources sur www.gnus.org. Xemacs possède une version de gnus incluse par défaut, mais elle est un peu vieille, mieux vaut prendre la dernière, tant qu'à faire... Personnelement j'ai pris la version CVS parce que la 5.8.6 marchait pas top avec les attachements (pas du tout même).
Une fois les fichiers lisps en place, il faut toucher un brin au .emacs histoire qu'emacs sache où trouver tout le bazar. Le mien ressemble à:
;;
;; gnus
;;
;; chemin des fichiers lisp
(setq load-path (cons (expand-file-name "/usr/local/share/emacs/site-lisp") load-path))
;; chemin des fichiers de doc
(setq Info-default-directory-list
(cons "/usr/local/info" Info-default-directory-list))
;;
;; evite d'avoir des fichiers ~ dans les répertoires de mails
;;
(defun turn-off-backup ()
(set (make-local-variable 'backup-inhibited) t))
(add-hook 'nnfolder-save-buffer-hook 'turn-off-backup)
Cela indique donc à emacs où trouver gnus, maintenant la configuration de gnus en lui-même se fait dans un ~/.gnus de préférence, histoire de pas tout mélanger avec emacs, parce qu'ils sont copains mais pas plus. Alors voilà mon fichier .gnus commenté, sachant que je capte pas tout non plus, gnus est extrêmement configurable et il y a un paquet de trucs qui passe a 15 000 pour moi... Vous aurez bien-sûr toutes les infos que vous voudrez dans le mode info de gnus (M-x info sous emacs).
;;; -*- Lisp -*-
;;; gnus customizations
;;
;; Fonctions utiles utilisées dans la suite
;;
(defun To (u) (concat "^\\([Cc][Cc]\\|[Tt][Oo]\\|Sender\\|Mailing-List\\|X-Loop\\):.*" u))
(defun ToMml (u) (To (concat u "@\\(mandrakesoft\\|linux-mandrake\\).com")))
(defun xloop (u) (concat "^X-Loop: " u))
(defun date (u) (concat (format-time-string "%Y%m." (current-time)) u))
;;
;; Ne pose pas de question en quittant.
;;
(setq gnus-interactive-exit 'nil)
;;
;; Renseignements sur moi
;;
(setq user-full-name "Warly"
user-mail-address "warly@linux-france.org"
message-from-style 'angles
;; gnus-local-organization "Mandrakesoft"
)
;;
;; chemins
;;
(setq gnus-article-save-directory "~/Mail/"
message-directory "~/Mail/"
gnus-use-long-file-name nil)
;;
;; A la casba j'utilise pas les news pour aller plus vite.
;;
(setq
;; gnus-check-new-newsgroups 'ask-server
gnus-check-new-newsgroups nil
gnus-save-killed-list nil
;; gnus-save-newsrc-file nil
nntp-connection-timeout 10
nntp-command-timeout 10
)
;;
;; truc pour gérer l'expiration des mails, mais pas concluant...
;;
;(remove-hook 'gnus-mark-article-hook
; 'gnus-summary-mark-read-and-unread-as-read)
;(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read)
;;
;; Ne sélectionne pas le premier article dès qu'on rentre dans un groupe
;;
(setq gnus-auto-select-first nil)
(setq
;; nntp-rlogin-command "ssh"
;; serveur de news
;; gnus-select-method '(nntp "news.server.yop")
mail-sources
'((file :path "/home/warly/Mail/mbox"))
;;
;; Si vous voulez faire du pop à partir d'emacs, moi j'ai un fetchmail
;; et un procmail qui le font.
;; (pop :server "pop3.mailserver.com" :user "myname")
;;
;; Si vous utilisez un procmail qui sépare déja votre mail en plusieurs
;; fichiers dans un répertoire
;;
;; '((directory :path "/home/warly/Mail/raw"
;; :suffix ""))
;; '((maildir :path "/home/warly/mail/"))
;; attribut des fichiers créer dans le répertoire de mail
;; ca doit etre de l'hexa si je ne m'abuse
;;
mail-source-default-file-modes 384
;;
;; il y a plusieurs facon de traiter le mail avec gnus, soit un fichier
;; par mail, c'est le défaut, soit un fichier par groupe, c'est ce que
;; je fais, soit un seul gros fichier.
;;
gnus-secondary-select-methods
'((nnfolder ""))
nnfolder-inhibit-expiry t
;; répertoire des news
gnus-article-save-directory "~/News"
;; fichier de scores, pour donner un score aux artivles et les classer
gnus-kill-files-directory "~/Mail/scores"
;; fichier ou je sauve les messages que j'envoie
;; avec la methode, le fichier active associé (ce fichier
;; contient les infos sur les mails lus, pas lus...
gnus-message-archive-group '((date "sent.sent"))
gnus-message-archive-method
'(nnfolder "archive"
'((nnfolder-directory (format-time-string "~/Mail" (current-time))))
(nnfolder-active-file "~/Mail/sent.active")
(nnfolder-get-new-mail nil)
; (nnfolder-inhibit-expiry t))
)
;; je maîtrise pas encore vraiment le processus d'expiration
;; qui permet de detruire des mails suivant certains critères
;; après un certain temps
; nnmail-expiry-wait 7
; gnus-auto-expirable-newsgroups ""
;;
;; Encodage Europe de l'Ouest
;;
message-default-charset `iso-8859-1
gnus-group-charset-alist '(("" "iso-8859-1"))
;;
;; Comment mon mail qu'il est séparé, yo
;; pour le coup c'est des trucs bidons, mais
;; l'esprit y est :)
;;
nnmail-split-methods
(list
(list (date "mandrake.yop") (ToMml "yop"))
(list (date "mandrake.teouaim") (ToMml "teouaim"))
(list (date "mandrake.in") (xloop "in"))
(list (date "mandrake.lala") (xloop "lala"))
(list (date "mandrake.gap") (ToMml "gap"))
(list (date "lkml") "linux-kernel@vger")
(list (date "devel") (ToMml "devel"))
(list (date "parinux") "X-list: parinux")
(list (date "debian") "debian-devel@lists.debian.org")
(list (date "redhat") "redhat-devel-list@redhat.com")
(list (date "lsb") "X-Loop: lsb-discuss@lists.linuxbase.org")
(list (date "lsb") "X-Loop: lsb-spec@lists.linuxbase.org")
(list (date "pote") "From:.*coyotte")
(list (date "pote") "From:.*merite")
(list (date "pote") "From:.*Solan Ter")
(list (date "pote") "(From : Damon Mike|From: damy)")
(list (date "mbox") ""))
;;
;; pour voir les groupes vide du mois courant (parce que je classe
;; par mois, mais c'est chacun son truc, c'est comme les céréales le
;; matin... Non ça ça n'a rien à voir...
gnus-permanently-visible-groups (date "")
;;
;; en gros ça m'affiche
;; l'attribut lu ou pas lu (U), l'attribut si j'ai repondu et des trucs dans ce genre (R)
;; le score (+ pour cool, - pour pas cool), le score total du thread sur 3 colonnes (V)
;; le nombre de mail dans le thread (t), le nombre de ligne du mail (L), l'envoyeur (a),
;; et le sujet (s) du mail...
;;
gnus-summary-line-format "%U%R%z%3V%I%(%3t%[%3L: %-20,20a%]%) %s\n"
;; par défaut ne montre que le premier mail des threads
gnus-thread-hide-subtree t
;; classique
gnus-signature-file "~/.signature"
;; iAmAHaCk3rYo
gnus-novice-user nil
;; pour faire varier les champs suivant à qui on écrit
gnus-posting-styles
'(
("mandrake"
(address "warly@mandrakesoft.com")
(organization "Mandrakesoft")
(signature "coolos carlos"))
;; ça a pas l'air de marcher comme ca...
;; (header "From.*To" "mandrake"
;; (address "warly@mandrakesoft.com"))
)
)
;
; bbdb, une base de données pour le carnet d'adresse
;
(require 'bbdb)
(require 'bbdb-gnus)
(bbdb-insinuate-gnus)
(require 'gnus-setup)
(setq gnus-use-bbdb t)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-message)
;;
;; utilise le packages footnotes, qui permet de faire des annotations dans les mails
;;
(require 'footnote)
;;
;; gpg
;;
(load-library "mailcrypt")
(mc-setversion "gpg")
Bon voilà pour avoir une base de fichier de config...
Copyright © 1999,2000 Florent Villard (warly@bigfoot.com)
This site was created with daily (tar.gz, rpm)