Mutt, ma configuration au peigne fin

03 janvier 2012

Mutt, koicé ?

Un client mail en mode console. Pour faire très simple, Mutt se lance depuis un émulateur de terminal.
Conséquemment, ça a la même tête que toutes les applications en console que vous seriez susceptible de lancer ou de connaître (irssi pour IRC, vim ou emacs (-nw) pour l'édition en texte, links pour la navigation web...). Si vous lanciez dejà plein de choses dans des consoles, ça vous en fera un de plus avec Mutt. On uniformise encore plus l'écran. Mutt hérite de toute la configuration de base (fontes, couleurs) de votre émulateur de terminal préféré.

Ici, je vous présente quelques utiles réglages dans la configuration de Mutt.

Pourquoi j'ai choisi Mutt

J'ai choisi Mutt sur un conseil de Vincentxavier, entre deux tasses de thé :D
Rendons à César ce qui est à César, c'est lui qui m'a aidé à le configurer et à utiliser Mutt pour la première fois.
Je me suis attachée à ce programme pour trois grandes raisons :

  • il se lance en console, il est donc tout léger, et c'est un point important : mon petit laptop est pauvre en performance, il lui fait des applications légères, sinon, il boude.
  • il est hautement configurable. L'application en console, c''est quelque chose de très plastique. Du coup, on peut faire vraiment beaucoup de choses.
  • il gère le chiffrement GPG des mails.

Bon c'est parti. Dans ce post, je ne vais pas m'attarder sur l'utilisation de Mutt (il y a pas mal de tutoriels dans les Internets), mais à sa configuration. Mais comme je sais à quel point c'est frustrant de lire un tuto de configuration sans pouvoir utiliser le programme, je vous renvoie d'ores et déjà vers ce pense-bête qui répertorie les principales commandes. J'en écrirai certainement un, mais ce n'est pas pour tout de suite .../o/
Ah et : je suis sous GNU/Linux, donc je vous présente une conf' Mutt sous GNU/Linux :)

Commençons par le début : tout ce que je ne précise pas concernant mon fichier de configuration de Mutt a été laissé par défaut (ou alors je l'ai oublié). On va donc copier le fichier de configuration par défaut, /usr/share/mutt/Muttrc ou /etc/muttrc dans votre dossier local, soit /home/pseudo/.muttrc ou ~/.muttrc.
Comme ça, on a une base sur laquelle travailler. On ne va modifier que les paramètres qui nous intéressent.

J'ai au moins trois adresses e-mails, je veux les lire dans le même client, je fais comment ?

Les paramètres décrits ici sont donc configurés pour l'IMAP.
Mon fichier de configuration est placé (vous verrez pourquoi) dans ~/.mutt/muttrc.

Ici, on définit des raccourcis clavier pour passer d'un compte à  l'autre :

macro index <f2> '<change-folder>imaps://imap.premiercompte.com<enter>'
macro index <f3> '<change-folder>imaps://imap.deuxiemecompte.com<enter>'
macro index <f4> '<change-folder>imaps://imap.troisiemecompte.fr<enter>'

Ensuite, on va créer des petits bouts de fichier de conf' pour adapter les paramètres smtp et la signature à chaque compte mail. D'où le dossier ~/.mutt.
Dans ce dossier, on ajoute trois fichiers, successivement account.premiercompte, account.deuxiemecompte, etc.
On va leur associer des hooks pour que Mutt puisse trouver les fichiers.

folder-hook 'premiercompte.com' 'source ~/.mutt/account.premiercompte'
folder-hook 'deuxiemecompte.com' 'source ~/.mutt/account.deuxiemecompte'
folder-hook 'troisiemecompte.fr' 'source ~/.mutt/account.troisiemecompte'
# On bascule vers le compte par defaut au démarrage
source ~/.mutt/account.premiercompte
account-hook 'premiercompte.com' 'set imap_user=user1 imap_pass=mdp1'
account-hook 'deuxiemecompte.com' 'set imap_user=user2 imap_pass=mdp2'
account-hook 'troisiemecompte.fr' ''set imap_user=user3 imap_pass=mdp3'

Attention : mettre son mot de passe en clair dans la configuration ne doit se faire que sur une machine dont vous êtes totalement sûr.
Préférez :

account-hook 'premiercompte.com' 'set imap_user=user1'
account-hook 'deuxiemecompte.com' 'set imap_user=user2'
account-hook 'troisiemecompte.fr' 'set imap_user=user3'

Mutt vous demandera votre mot de passe à chaque ouverture de session, et ne vous le redemandera plus jusqu'à ce que vous quittiez.
Si vous êtes vraiment parano, cette solution existe.

Voici ce qu'on trouve à l''intérieur du fameux fichier account.xxxcompte :

set from=moi@premiercompte.com
set hostname="premiercompte.com"
set folder="imaps://imap.premiercompte.com/"
set postponed="=Drafts"
set spoolfile="imaps://imap.premiercompte.com/INBOX"
set signature="~/.mutt/signature.premiercompte"

Je veux signer et chiffrer mes mails avec GPG, je fais comment ?

Là, je dois lancer des fleurs au Zorun, qui m'a filé un bout de .muttrc qui marche bien !

Il faut au préalable avoir installé GPG sur sa machine et avoir généré une clé. Mais ce n'est pas le propos de cet article. Je vais faire comme si vous aviez une clé GPG de générée.
Il faudra remplacer **** par l''identifiant de votre clé GPG.

set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to **** -- -r %r -- %f"
set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to **** -- -r %r -- %f"
set pgp_import_command="gpg --no-verbose --import -v %f"
set pgp_export_command="gpg --no-verbose --export --armor %r"
set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
set pgp_autosign=yes
set pgp_sign_as=****
set pgp_replyencrypt=yes
set pgp_timeout=60

Attention : par défaut, Mutt ne reconnaît pas les mails chiffrés via Enigmail/Thunderbird. Il faut les signaler comme chiffrés à la main via le raccourci P.

Je veux des jolies couleurs !

Voici les miennes ! Les couleurs par défaut ne me plaisaient pas.

# Couleurs générales #
color normal white default # texte normal
color status brightgreen blue # barre de statut, et première ligne
color search brightyellow red # résultats de la recherche
color message brightyellow default # messages d'information, dernière ligne
color error brightred default # messages d'erreur, dernière ligne
color markers brightred default # le signe + au début des lignes « cassées »

# Couleurs pour l'index et le menu des pièces jointes #
color indicator yellow default # le message sélectionné
color tree blue default # La flèche des fils de discussion
color index brightblue default ~F # messages importants, ! flag - commande "F"
color index brightyellow default ~N # nouveaux messages, N flag - commande "N"
color index magenta default ~T # messages tagués, * flag - commande "t"
color index brightwhite default ~U # messages non-lus
color index red default ~D # messages supprimés D flag - commandes "d"/"u"

# 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 # pièces jointes
color body brightblue default "(ftp|http)://[^ ]+" # URLs
color body cyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # adresses email
color signature brightblue default # la signature (après les "sigdashes")

# effet de style d'écriture #
color bold brightwhite default # texte en gras
color underline brightgreen default # texte souligné
color body brightgreen default " [;:]-*[)>(<|]"
color body brightgreen default " [;:][)>(<|]"
color error brightwhite red # messages d'erreur

# Couleurs des quotes #
color quoted red default # texte cité, 1er niveau
color quoted1 green default # texte cité, 2e niveau
color quoted2 brightblue default # texte cité, 3e niveau
color quoted3 blue default # texte cité, 4e niveau
auto_view text/html

Je veux afficher mes mails en HTML correctement !

Pour faire ça, on va utiliser le programme links -qu''il faut donc avoir installé au préalable.
On va créer un fichier ~/.mailcap, qu''il faut au préalable déclarer dans son .muttrc :
set mailcap_path = ~/.mailcap

Et on va rajouter ça : text/html; lynx %s

Je veux afficher mes pdf, mes images...

C'est toujours quelque chose qu''on va rajouter au fichier ~/.mailcap , pour qu''il lance la bonne application pour afficher les images et les pdf. J'utilise feh pour les images et mupdf pour les documents pdf.

images/*; feh %s;
application/pdf; mupdf %s;

Les avis sur ce billet

Personne n'a encore donné son avis.

Je veux donner mon avis !