muttrc : configuration du client mail Mutt (multi-compte)
Un peu en complément du dernier article, je ne reviendrais pas sur fetchmail, procmail ou msmtp, mais je ne resterai que sur la configuration du fichier muttrc.
Parce que ce fichier vaux largement un billet à lui tout seul (même plusieurs), et que j’ai refait sa configuration depuis le dernier article. On va voir également l’inclusion de lynx (pour les #&@¿! de mails en html) et d’un correcteur orthographique pour vim. (car même si j’essaye de faire des progrès en français…)
Introduction
Petit rappel pour ceux qu’y n’aurait pas suivis, nous sommes dans le cas où mutt n’est qu’un simple lecteur de mail, il n’y a aucun identifiant de connexion POP/IMAP/SMTP car ce n’est pas son rôle et que tout ça est relégué aux services décrit plus longuement dans le billet : Gestion multi-comptes de mutt avec fetchmail, procmail…
L’idée général va être de splitté un peu ce fichier, qui pourrait vite devenir très conséquent au fil de vos modifications. Comme ça, quand on souhaite rajouter (une boite mail par exemple) ou modifier (une macro, ou un hook) on ne perd pas de temps dans un fichier interminable.
J’essayerai autant que possible de tenir ce présent article à jour dans les évolutions de mes configuration.
Bien, passons au choses sérieuses !
muttrc (général)
Ce fichier ne contient plus qu’une cinquantaine de lignes, qui pourrai être splitté encore…
Je n’y ai laissé que vraiment les choses général, et bien sûr les renvoie au fichiers sources de configuration plus spécifique.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # ~/.muttrc set spoolfile = "+gmail" set postponed="+postponed" # Utilisation du cache #set header_cache=~/.mutt/cache/headers #set message_cachedir=~/.mutt/cache/bodies #set certificate_file=~/.mutt/certificates set record="+envoye" set envelope_from=yes set sendmail="/usr/bin/msmtp" set imap_check_subscribed # Heures et dates françaises set locale="fr_FR.UTF-8" set charset="utf-8" # character set for your terminal set assumed_charset="utf-8" set send_charset="utf-8:iso-8859-15:us-ascii" # Mon éditeur fétiche set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set nocp" -c "?^$"' # Utile lorsqu'on a plusieurs adresses mail set reverse_name=yes set reverse_realname=yes ### Commande spécifique pour le répertoire abook set query_command = "abook --mutt-query '%s'" macro generic,index,pager a "<shell-escape>abook<return>" "lance abook" macro index,pager A "<pipe-message>abook --add-email<return>" "ajoute l'adresse de l'envoyeur à abook" ### FIN abook # Commande spécifique pour lire les mails html avec lynx set implicit_autoview auto_view text/html application/x-pgp-message set mailcap_path="~/.mutt/mailcap" ### FIN lynx source ~/.mutt/conf/mailboxes # conf des boites mails source ~/.mutt/conf/couleurs # conf des couleurs source ~/.mutt/conf/send-hook source ~/.mutt/conf/folder-hook source ~/.mutt/conf/disposition # conf de la mise en page/disposition source ~/.mutt/conf/header # défini la présentation des header dans un message source ~/.mutt/conf/subscribe |
Bien sûr je ne vais pas « lacher d’la conf » comme ça sans donner un peu d’explication !
Description du fichier muttrc
- l. 6 à 9 (l. == ligne) j’ai commenté momentanément la mise en cache pour une bonne et simple raison, si vous faite des modifications de couleurs notamment, la mise en cache peut fausser ces modifications ! (je me suis fait avoir, en ne comprenant pas pourquoi j’avais exactement ce que je voulais :þ)
- l. 11 à 20 quelques banalités, comme le répertoire d’envoi, les locales françaises…
- l. 23 sert à aller à la ligne pour Vim afin de ne pas écrire de longue ligne, et rester plus dans des standards, ici réglé à 72 caractères par lignes (on pourrais prendre 80).
- l. 26, 27 important lorsqu’on possède plusieurs comptes.
- l 29 à 33 utilisation d’abook, (voir chapitre 7 du précédent article).
- l. 35 à 39 utilisation de lynx pour lire les mails html (voir ci dessous pour une explication plus complète).
- l. 41 à 47 voilà les différents fichiers de configuration de mutt. que j’ai rassemblé dans un sous-répertoire « conf » mais libre à vous. On va voir plus en détail chaque fichier. Bien sûr on peut en avoir plus/moins, dépend aussi de votre usage, notamment il manque encore la gestion des certificats, gpg…
Utilisation de lynx
Lynx est un des plus vieux navigateur html (le plus vieux ?) utilisable en console. Et c’est un clin d’œil à ce logiciel que Ubuntu Lucid Lynx 10.04 fait allusion avec son nom de version :þ.
Si vous ne l’avez pas encore, installez le.
il suffit donc, de recopier les lignes dans le muttrc comme indiqué ci-dessus, et de crée un fichier ~/.mutt/mailcap contenant ce qu’il suit :
text/html; lynx -dump -force_html %s; needsterminal; copiousoutput
Avec cela, plus de soucis pour interpréter les mails écrit en html !
Nous allons voir maintenant chaque fichier de configuration.
Couleurs
J’ai restructuré la disposition des couleurs qui dans mon ancienne configuration été… un bordel…
Normalement la disposition et les commentaires directement dans le fichier devrait suffire à comprendre où trouver ce que l’on veux modifier.
# Couleurs # Configurations des couleurs de mutt # ################ ### INDEX ################ # text colors - general functions color normal yellow default # normal text color status brightgreen blue # status bar, last and first row color search brightyellow red # search results color message brightyellow default # information messages, last row color error brightred default # error messages, last row color markers brightred default # the + sign at the start of broken lines # text colors - message index and attachment menu color indicator red default # current message selected color tree brightred default # Threads' arrow color index brightwhite default ~F # important messages ! flag - command "F" color index green default ~N # nouveaux messages N flag - command "N" color index magenta default ~T # tagged messages * flag - command "t" color index green default ~U # non-lu messages color index brightblue default ~D # messages supprimé D flag - commands "d"/"u" ################ ### MESSAGE ################ # header de messages # color header brightyellow default ^(From): color header brightwhite default ^(Subject): color header yellow default ^(To): color header green default ^(Date): color header white default ^(In-Reply-To): color hdrdefault magenta default # attachement, URI, mail, signature # color attachment blue default # attachments color body brightblue default "(ftp|http)://[^ ]+" # point out URLs color body cyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses color signature brightblue default # the signature (after sigdashes) # effet de style d'écriture # color bold brightwhite default # boldface text color underline brightgreen default # underlined text color body brightgreen default " [;:]-*[)>(<|]" # :-) etc... color body brightgreen default " [;:][)>(<|]" # :) etc... #color error brightwhite red # error messages # Couleurs des quotes # color quoted red default # quoted text, 1st quote level color quoted1 green default # quoted text, 2nd quote level color quoted2 brightblue default # quoted text, 3rd quote level color quoted3 blue default # quoted text, 4th quoet level
Pas de grosse difficulté, juste comprendre que l’index, c’est les couleurs lorsqu’on ne lit que les en-têtes des messages, à l’entrée de votre boite mail, et les messages, ce sont les couleurs lorsqu’on lit directement ces messages.
Mailboxes
Ici, nous définissons les différents répertoires servant de boites mails afin que Mutt les reconnaisse. autant de mailboxes que de répertoires donc, pratique d’avoir ça dans un fichier, car si vous voulez en rajouter une, c’est vite retrouvé.
# mailboxes # configuration des boites mails de mutt alternates ^mon\\.compte@gmail\\.com$ ^mon\\.autre@live\\.fr$ ^unedeplus@live\\.fr$ ^laderniere@nicosphere\\.net$ set folder = ~/Mail mailboxes +gmail mailboxes +sphere mailboxes +spherelive mailboxes +hotmail mailboxes +spam mailboxes +ml mailboxes +mlblabla mailboxes +arch-fr mailboxes +arch-dev mailboxes +arch-general
Ce fichier contient également les boites mails de vos listes de diffusions. Rien de bien compliqué, « alternates » étant expliqué plus en détail dans le dernier article.
Header
Ici on définit les headers affiché lorsqu’on lit un message. le principe est, on les ignore tous, puis on dé-ignore ceux que l’on souhaite, enfin, en entre dans une variable l’ordre dans lequel on souhaites qu’il apparaisse.
J’en ai laissé pas mal de commenté dans le cas où il vous intéresserai de les décommenter.
# header # On ignore tout ignore * # Puis on un-ignore ce que l'on souhaite unignore From: unignore To: unignore Reply-To: unignore Mail-Followup-To: unignore Subject: unignore Date: #unignore Organization: unignore Newsgroups: unignore CC: unignore BCC: #unignore Message-ID: #unignore X-Mailer: unignore User-Agent: #unignore X-Junked-Because: #unignore X-SpamProbe: #unignore X-Virus-hagbard: #unignore X-Spam-Status #unignore X-Grouchosity #unignore X-Bogosity hdr_order Date: From: Subject: To: Cc: Reply-To: Mail-Followup-To Newsgroups: User-Agent:
Encore une fois, rien de compliqué, mais c’est toujours agréable d’avoir tout ce « bordel » dans un fichier séparer, car une fois qu’on souhaite affiné les réglage, on va directement là où l’on souhaite, sans fioritures pour déstabiliser :þ
Disposition
C’est un peu la mise en page de tout ça, la disposition. dans ce fichier, des détails qui on leur importance.
# disposition #différent formats indiqué set attribution="* %n <%a> [%{%Y-%m-%d %H:%M:%S %Z}]:\n" set folder_format="%N %f %F %s %t" set index_format="%4C %Z Exp: %-30.30f Suj: %-30.30s %b %d %-15.15L (%?l?%4l&%4c?)" set pager_context=3 set nostrict_threads set date_format="%A %d %b %Y à %H:%M:%S (%Z)" # permet lorsqu'on lit un mail de toujours avoir # une liste affiché en haut dans une 2ème fenêtre set pager_index_lines=9 # permet d'avoir les threads, et arbre en places set sort=threads set sort_aux = last-date-received # les citations set attribution="Le %d, %n a écrit :" set forward_format="[Re: %s]" set forward_quote #Une signature (que je ne met pas) #set signature="~/.mutt/.signature"
Les lignes sont commentées pour plus de simplicité, plusieurs détails quand même :
- folder_format et index_format servent à la disposition des informations notamment pour l’index, pour plus de détail, sur ce qu’on peut afficher, ou la signification de chaque variable, le mieux c’est de se référer à la documentation officiel.
- Ici sort=threads permet classer par fil de discussion. et c’est défini comme règle général, mais on peut, avec un folder-hook n’appliquer cette règle que pour les boites mail contenant les listes de diffusions. (ce que je vais sûrement faire par la suite)
Les hooks
folder-hook
Permet de définir en fonction du répertoire les règles à appliqué, ici c’est le choix de l’adresse mail, mais ça pourrais très bien comme dit plus haut, spécifier des règles pour les listes de diffusions.
# folder-hook folder-hook . 'my_hdr From: Nicolas Paris <blablabla@gmail.com>' folder-hook sphere 'my_hdr From: Nic0 <blablablaagain@nicosphere.net>'
Je ne m’attarde pas là dessus non plus, car vu dans le précédent article.
send-hook
# send-hook send-hook . 'set sendmail="/usr/bin/msmtp"' send-hook "~f ^blabal@nicosphere\\.net$" 'set sendmail="/usr/bin/msmtp -a ovh"'
Encore une fois, vu dans le précédent article, et je n’utilise que deux adresses mails pour envoyer des messages (j’en reçois sur 4 ou 5 je crois :þ)
Subscribe
Permet de définir les listes de diffusions afin de profiter de fonctionnalité de Mutt.
# subscribe
subscribe arch-dev-public
subscribe arch-general
...
...
...Vérificateur orthographique
Petit bonus à tout ce qu’y a été dit jusque là, cela permet d’afficher en rouge les mots mal orthographier.
Sous Archlinux:
yaourt -S vim-spell-fr
Puis dans votre .vimrc on rajoute :
set spelllang=fr
Enfin faite pour vérifier l’orthographe un :
:set spell
Conclusion
Voilà une configuration qui n’est très certainement pas achevé ! Il est évident qu’elle sera modifier encore avec l’expérience de l’utilisation, l’affinement de certain détail (dont j’en ai déjà en tête :þ). Et la route vers un Mutt parfait à son usage est longue.
Mais en aillant structuré la configuration un minimum comme cela, il est plus facile d’y revenir jusqu’à obtenir quelque chose de très personnalisé !
J’espère qu’avec ces deux articles (avec le précédent), même si vous n’avez pas migré vers une tel configuration de messagerie, cela vous aura montré les possibilités très vaste d’une tel mise en place, et peut être moins compliqué qu’il puisse parraître au premier abord.

Articles en rapport:
- Gestion multi-comptes de mutt avec fetchmail, procmail…
- Conky : liste de variable disponible pour conkyrc
- Unrealircd : Compilation, installation et configuration (part II)
- tin : utilisation et configuration d’un newsreader ncurses
- Raindrop : Mozilla lance un projet façon Google Wave
- Mozilla Thunderbird: La simplicité pour lire les mails









Derniers commentaires