À pro­pos de Mutt

Pour résu­mer sim­ple­ment, Mutt est une sorte de navi­ga­teur de fichiers en mode texte spé­cia­li­sé dans la lec­ture de boites cour­riel (comme le for­mat mbox par exemple). Ain­si, à l’aide d’un « récu­pé­ra­teur » de cour­riel (comme fetch­mail ou proc­mail) vous pou­vez télé­char­ger vos cour­riels, les sto­cker dans un dos­sier et les lire avec Mutt. Cela dit, Mutt est tel­le­ment bien qu’il peut lire des dos­siers dis­tants, en uti­li­sant le pro­to­cole IMAP notam­ment. En d’autres termes si vous uti­li­ser IMAP, Mutt peut (presque) se suf­fire à lui tout seul. De plus, Mutt n’a pas d’éditeur de texte inté­gré, et il s’utilise dans un ter­mi­nal. Si vous vou­lez écrire un cour­riel, il vous faut confi­gu­rer Mutt de manière à uti­li­ser l’éditeur de votre choix. Et si vous vou­lez des cou­leurs, ce seront celles dont est capable d’afficher votre ter­mi­nal. Ce billet vise à faire le point sur l’utilisation de Mutt et montre com­bien ce petit logi­ciel peut s’avérer très puis­sant.

S’il est si petit, pour­quoi uti­li­ser Mutt ?

Mutt est un pro­gramme dans la droite lignée des pro­grammes Unix. C’est un petit pro­gramme, réa­li­sé pour effec­tuer un seul type de tâche, mais il le fait bien. Ain­si pour uti­li­ser conve­na­ble­ment Mutt, il fau­dra tout de même un peu de débrouillar­dise et de bon sens, sur­tout dans la mesure où Mutt est dit « hau­te­ment confi­gu­rable ». Sa puis­sance vient tout sim­ple­ment de ce que vous même avez confi­gu­ré. C’est pour cela que Mutt est sans doute le client de cour­riel le plus effi­cace.

Voi­ci deux exemples rapides :

– Je pos­sède un compte cour­riel sur un ser­veur et je veux y accè­der en IMAP. Le pro­ces­sus est assez simple. Après avoir cor­rec­te­ment confi­gu­ré Mutt pour l’accès à mon compte, Mutt lira les dos­siers sur le ser­veur, me ren­ver­ra les en-têtes, me per­met­tra de lire les cour­riels et si je désire envoyer un mes­sage, Mutt ira le pla­cer dans la boîte d’envoi. De ce point de vue, Mutt effec­tue un tra­vail de rapa­trie­ment de don­nées, le ser­veur IMAP fait le reste.

– Je pos­sède un compte cour­riel et j’y accède en POP. A l’aide d’un « récol­teur » de cour­riel, comme proc­mail ou fetch­mail, je rapa­trie mes don­nées dans un dos­sier local et je confi­gure Mutt pour qu’il lise les élé­ments de ce dos­sier. Le tri, les règles de sto­ckage et clas­se­ment reposent sur la confi­gu­ra­tion du « récol­teur » que j’ai déci­dé d’utiliser (notez que fetch­mail ou proc­mail sont de même « hau­te­ment confi­gu­rables »). Vous pou­vez lire cette page du manuel de for­ma­tion Debian pour en apprendre davan­tage sur ce sys­tème

Com­ment uti­li­ser Mutt ?

mutt_capture_ecran

Il vous fau­dra d’abord le confi­gu­rer. Pour ce faire, le prin­cipe est simple : après avoir ins­tal­lé le pro­gramme via les dépôts de votre dis­tri­bu­tion, créez un fichier .mut­trc dans votre /home. Ensuite il existe toute une série de com­mandes que vous pou­vez ren­sei­gner pour faire fonc­tion­ner Mutt. Ces com­mandes concernent les moda­li­tés de connexion à un compte, les règles d’affichage des mes­sages et de leurs en-tête, les règles de rédac­tion, les règles de tri et d’envoi, la per­so­na­li­sa­tion des en-têtes des mes­sages envoyés, les jeux de cou­leurs, l’éditeur de texte choi­si, etc, etc. Bref, tout ce qui per­met à Mutt de faire ce que vous lui deman­dez tout en coopé­rant avec d’autres pro­grammes selon vos besoins.

Le seul bémol est qu’il vous fau­dra sans doute pas­ser du temps à com­prendre et implé­men­ter ces com­mandes dans le fichier de confi­gu­ra­tion. En contre­par­tie, Mutt sera capable de faire tout ce que vous lui deman­dez et l’éventail des fonc­tion­na­li­tés est par­ti­cu­liè­re­ment grand et mal­léable. Mutt est vrai­ment un logi­ciel libre !

Barre laté­rale

Cer­tains uti­li­sa­teurs pré­fèrent avoir sous les yeux la liste des dos­siers dans les­quels ils trient leurs mes­sages. Lorsqu’un nou­veau mes­sage arrive, il est signa­lé pré­sent dans l’un des dos­siers et l’utilisateur peut navi­guer entre ces der­niers. Nati­ve­ment, Mutt n’intègre pas une telle barre laté­rale. Il faut alors pat­cher Mutt dans ce sens. Pour cela, cer­taines dis­tri­bu­tions, outre le fait de pro­po­ser Mutt dans les dépôts, pro­posent aus­si le paque­tage mutt-pat­ched. Si ce n’est pas le cas, il faut alors se rendre sur le site offi­ciel de ce patch.

Impri­mer avec Mutt ?

Impri­mer avec Mutt, c’est déjà beau­coup dire. En fait, lorsque l’on confi­gure Mutt en édi­tant .mut­trc, il suf­fit d’ajouter cette com­mande

set print_cmd="lpr -P nom_de_l_imprimante"

pour pou­voir impri­mer (touche « p ») l’entrée cou­rante. Mutt envoie alors le texte… tout le texte visible.

De même, selon l’éditeur de texte que vous uti­li­sez avec Mutt pour écrire vos cour­riels, il pos­sède sans aucun doute une fonc­tion d’impression. Mais il ne s’agit que d’imprimer le texte que vous entrez.

Vous aime­riez peut-être pou­voir for­ma­ter l’impression et gérer la mise en page des cour­riels que vous impri­mez. Pour cela Mutt­print est un petit uti­li­taire confi­gu­rable (lui aus­si!) qui vous ren­dra de bien grands ser­vices, ne serait-ce que pour limi­ter l’impression aux en-têtes les plus utiles comme date :, à :, et de :. Cer­taines dis­tri­bu­tions pro­posent le paque­tage mutt­print, il vous suf­fit alors de l’installer en quelques clics depuis les dépôts.

Confi­gu­rer Mutt­print se fait de manière simi­laire à Mutt. Vous avez cepen­dant le choix entre soit édi­ter direc­te­ment le fichier /etc/Muttprint (donc en mode root), soit créer et édi­ter un fichier .mutt­prin­trc dans votre /home, à coté de .mut­trc.

Dans .mut­trc, au lieu de spé­ci­fier l’imprimante, vous devez alors dire à Mutt d’appeler Mutt­print à la res­cousse :

set print_command="muttprint"

Et dans mutt­prin­trc, il vous suf­fit de ren­sei­gner les com­mandes, en par­ti­cu­lier celle-ci :

PRINT_COMMAND="lpr -P nom_de_l_imprimante"

Le fichier /etc/Muttrc qui se crée lors de l’installation de Mutt­print ser­vi­ra de modèle (à défaut d’être direc­te­ment modi­fié lui-même). Il a l’avantage de voir chaque com­mande expli­ci­tée, ce qui le rend très facile à confi­gu­rer.

Petite astuce : si dans l’en-tête que vous impri­mez, vous dési­rez voir figu­rer un petit man­chot linuxien, il vous suf­fit d’installer le paque­tage ospics qui ira pla­cer une série de petit des­sins dans /usr/share/ospics/. Il reste à faire appel à l’un d’entre eux (for­mat .eps) pour égailler un peu vos impres­sions (mais vous pou­vez très bien uti­li­ser un autre fichier .eps de votre choix, comme le logo de votre labo, une pho­to de votre chien, etc.).

Ges­tion des pro­fils

mutt_capture_ecran_reponse

Vous aime­riez peut-être uti­li­ser plu­sieurs adresses cour­riel et signa­tures, selon vos des­ti­na­taires ou les listes aux­quelles vous êtes abon­né. Pour cela il y a au moins deux pos­si­bi­li­tés.

La pre­mière est de par­tir de l’idée que vous rapa­triez plu­sieurs boites cour­riel, par exemple avec fetch­mail. Et que selon les boites que vous consul­tez et répon­dez aux cor­res­pon­dants, vous devez pas­ser par un ser­veur smtp dif­fé­rent, avec une connexion (mot de passe) dif­fé­rente, une clé GPG dif­fé­rente, etc. Le petit uti­li­taire Mutt­pro­file est là pour gérer ce type de situa­tion. Depuis Mutt, on peut alors pas­ser d’un pro­fil à l’autre via une série de macro adé­quates. Cer­taines dis­tri­bu­tions pro­posent le paque­tage mutt­pro­file dans leurs dépôts.

Cela dit, le sys­tème pré­cé­dent est un peu lourd à gérer [opi­nion per­son­nelle de l’auteur de ces lignes]. Il pré­sente néan­moins le grand avan­tage de se prê­ter par­fai­te­ment à l’utilisateur qui héberge son propre ser­veur de cour­riel, où à celui qui tient vrai­ment à avoir une confi­gu­ra­tion rela­tive à ses pro­fils. Pour l’utilisateur qui sou­haite fonc­tion­ner plus sim­ple­ment, le mieux est encore de rapa­trier toutes les boites cour­riel dans une seule depuis les ser­veurs (géné­ra­le­ment, vous pou­vez confi­gu­rer cela depuis l’interface web­mail de votre boite) et fina­le­ment ne consul­ter avec Mutt qu’une seule boîte. Il s’agit donc de ne pas­ser que par un seul ser­veur au lieu de plu­sieurs. Mais dans ce cas, com­ment gérer ses pro­fils ?

Hooks

Une fonc­tion­na­li­té for­mi­dable de Mutt, ce sont les « hook ». Il s’agit de fonc­tions de type « si … alors » qui sont très pré­cieuses.

Par exemple, si j’ai besoin de spé­ci­fier une adresse en fonc­tion d’une adresse d’un expé­di­teur ou d’une liste à laquelle je suis abon­né, je peux écrire dans mon .mut­trc la séquence sui­vante :

send-hook olivier.durand@machin.com my_hdr From: Patrick Dupont

Cette séquence per­met de répondre à Oli­vier Durant en uti­li­sant l’adresse Patrick Dupont (lorsque j’écris un mes­sage, Mutt repère la chaîne « olivier.durand » dans le champ To : et place ce que je lui ai deman­dé dans le champ From :).

Autre exemple : si je sou­haite uti­li­ser une adresse cour­riel pré­cise lorsque je me situe dans un dos­sier (par exemple le dos­sier dans lequel je rapa­trie les mes­sages pro­ve­nant de mon compte secon­daire), alors je peux uti­li­ser ce type de com­mande :

folder-hook laposte my_hdr From: Jean Dugenou

qui per­met d’utiliser l’adresse Jean Duge­nou lorsque je me situe dans le dos­sier /laposte (cela marche aus­si bien en IMAP).

Il y a beau­coup d’autres pos­si­bi­li­tés ouvertes par le sys­tème des « hook », et, au fil du temps, vous fini­rez par consti­tuer une suite de règles variées cor­res­pon­dant exac­te­ment à vos besoins. C’est aus­si la rai­son pour laquelle vous avez tout inté­rêt à sau­ve­gar­der en lieu sûr une copie de votre .mut­trc, his­toire de ne pas avoir à tout refaire si vous per­dez la pre­mière…

Com­mandes et variables

Une autre par­ti­cu­la­ri­té de Mutt est que l’apprentissage consiste essen­tiel­le­ment à com­prendre son .mut­trc et com­pa­rer avec celui des autres uti­li­sa­teurs. Pour cela, il est pos­sible de trou­ver sur inter­net des exemples bien faits de .mut­trc, en par­ti­cu­lier sur le site offi­ciel (qui pro­pose aus­si un wiki). La liste des com­mandes et variables pour la confi­gu­ra­tion de Mutt se trouve sur cette page du manuel en ligne et sa tra­duc­tion en fran­çais sur le site de Cedric Duval.

L’éditeur de texte

Comme nous l’avons pré­ci­sé plus haut, Mutt ne fait que navi­guer dans votre cour­riel. Il ne per­met pas d’écrire. Pour cela, il lui faut faire appel à un édi­teur de texte. Le prin­cipe est, là encore, assez simple : lorsque vous écri­vez un mes­sage, vous entrez le texte sous les en-têtes défi­nies par Mutt (et que vous pou­vez modi­fier « à la main »), vous quit­tez l’éditeur et Mutt reprend la main pour envoyer le mes­sage.

Avec Mutt, vous pou­vez uti­li­ser n’importe quel édi­teur de texte de votre choix. Après l’installation, la confi­gu­ra­tion par défaut uti­lise l’éditeur par défaut de votre sys­tème. Si vous sou­hai­tez en chan­ger, il suf­fit de le décla­rer dans .mut­trc. En pra­tique, Vim ou Emacs sont sans doutes les édi­teurs les plus appro­priés, Mutt ayant une appa­rence par défaut se rap­pro­chant plu­tôt de Vim. Nano, un gen­til petit édi­teur de texte qui a aus­si sa cohorte d’admirateurs, pour­ra de même com­bler vos attentes.

Pour ceux qui dési­rent uti­li­ser Vim, là encore, de manière option­nelle, vous pou­vez créer un fichier .vimrc dans votre /home, de manière à confi­gu­rer Vim pour une uti­li­sa­tion avec Mutt, entrer vos propres com­mandes par exemple. L’une d’entre elles (syntax on) vous per­met­tra d’utiliser un jeu de colo­ra­tion syn­taxique se rap­pro­chant de Mutt (quoi que cela dépende des cou­leurs que vous avez confi­gu­ré dans .mut­trc).

[Atten­tion, uti­li­sa­teurs de Ubun­tu, la ver­sion de Vim ins­tal­lée par défaut est Vim-Tiny. Il vaut mieux ins­tal­ler Vim dans sa ver­sion com­plète pour pou­voir faire ce que vous vou­lez avec .vimrc].

Lire les mes­sages en HTML

Pour des rai­sons diverses (et pas tou­jours jus­ti­fiées) cer­taines per­sonnes aiment envoyer des cour­riel au for­mat HTML, par­fois même accom­pa­gnés d’images à l’esthétique dou­teuse cen­sées « embel­lir » le mes­sage. Avec Mutt, il faut donc faire appel à un logi­ciel capable de lire le HTML. Il existe au moins plu­sieurs navi­ga­teurs en mode texte : Lynx, W3m, Elinks, Links, Links2…

Il s’agit en fait d’utiliser les entrées mail­cap pour recon­naitre le type d’information à trai­ter et faire appel au bon logi­ciel pour les affi­cher. Dans le fichier .mut­trc, il fau­dra donc entrer le code per­met­tant de faire appel au fichier .mail­cap que vous devez créer dans votre /home :

set implicit_autoview
auto_view text/html  application/x-pgp-message
set mailcap_path="~/.mailcap"
set mailcap_sanitize=yes

Puis, dans .mail­cap, au choix :

  • Si vous dési­rez uti­li­ser Lynx*:
    text/html; lynx -dump -force-html -assume_charset %{charset} -localhost %s; copiousoutput
  • Si vous dési­rez uti­li­ser W3m :
    text/html; w3m -dump %s; copiousoutput; nametemplate=%s.html
  • Si vous dési­rez uti­li­ser Links ou Links2 :
    text/html; links2 -dump %s; nametemplate=%s.html; copiousoutput
  • Si vous dési­rez uti­li­ser Elinks :
    text/html; elinks -default-mime-type text/html %s; needsterminal;
  • Dans le cas Lynx, vous note­rez la séquence -assume_charset %{charset}. Elle vise à tirer avan­tage de la confi­gu­ra­tion de Lynx uti­li­sant le para­mètre assume_charset afin de lire cor­rec­te­ment la majo­ri­té des mes­sages et leur enco­dage.

L’option -dump per­met l’affichage dans le même pro­ces­sus que Mutt, c’est à dire dans la même fenêtre. Si vous dési­rez uti­li­ser les navi­ga­teurs de manière auto­nome, puis, en les quit­tant, reve­nir auto­ma­ti­que­ment à Mutt :

  • text/html; Lynx %s; nametemplate=%s.html
  • text/html; w3m %s; nametemplate=%s.html
  • text/html; links2 %s; nametemplate=%s.html

Atten­tion : si votre sys­tème est confi­gu­ré en UTF8 (Locales), c’est cet enco­dage qui sera uti­li­sé par le navi­ga­teur que vous aurez choi­si. Un avan­tage de Links(2) est que si le « content-type » du cour­riel envoyé n’est pas ou mal ren­sei­gné, ou si l’encodage n’est pas le même que le vôtre, alors ce navi­ga­teur gère­ra les défauts d’affichage (par exemple les lettres accen­tuées) en trou­vant des solu­tions per­met­tant une lec­ture agréable du cour­riel.

Le Car­net d’adresses

Les alias, mode clas­sique

Mutt intègre un sys­tème de réper­toire d’adresses très simple. Un fichier d’adresse est créé dans lequel vous enre­gis­trez vos contacts.

Ain­si, dans votre .mut­trc, vous pou­vez indi­quer ceci :

#CARNET ADRESSES
set alias_file = ~/.mutt/adresses
source ~/.mutt/adresses

Cela aura pour effet d’enregistrer vos alias dans /.mutt/adresses et de recher­cher ces alias dans ce même fichier (source).

Uti­li­sa­tion de Abook

Abook est un petit pro­gramme de ges­tion de contacts fait pour fonc­tion­ner avec Mutt. Plus éla­bo­ré que le sys­tèmes des alias (cf. ci-des­sus), il per­met notam­ment l’import et l’export de car­nets d’adresses dans dif­fé­rents for­mats et sur­tout il pré­sente une inter­face gra­phique et stocke davan­tage d’informations sur vos contacts.

Abook doit cer­tai­ne­ment être dis­po­nible dans les paquets de votre dis­tri­bu­tion. Le site du pro­jet se trouve à cette adresse.

Pour uti­li­ser Abook avec Mutt, il suf­fit de confi­gu­rer votre .mut­trc ain­si :

# Abook
set query_command= "abook --mutt-query '%s'"
macro index,pager A "abook --add-email-quiet" "Ajouter l'expediteur dans abook"

Cela aura pour effet de per­mettre à Mutt de faire appel à Abook, deux deux manières : en tapant A (au lieu de a, uti­li­sé pour les alias), l’expéditeur sera ajou­té au car­net de Abook. Et pour uti­li­ser Abook « à l’intérieur de Mutt », c’est à dire dans le même ter­mi­nal, il suf­fi­ra de faire CTRL+t lors de l’entrée du des­ti­na­taire. La liste des contacts de Abook appa­raî­tra alors.


Le logo de Mutt affi­ché en haut à gauche n’est pas le logo offi­ciel (mais il est très joli). Il a été créé par Mal­colm Locke. Vous pou­vez vous le pro­cu­rer ici, ain­si que sa licence (crea­tive com­mon).

Christophe

Fram(hack)tiviste, je fais du vélo et je mange des châtaignes.