# Installation

Mutt est un client mail utilisé en ligne de commande.
Son interface utilise "ncurses".

~~~
# apt install mutt
~~~

# Commandes

## Guide de survie

~~~{.bash}
? : "Aide"
m : "Rédiger un nouveau mail"
r : "Répondre"
g : "Répondre à tous"
y : "Naviguer dans les sous-Maildir"
w : "Appliquer un flag sur le mail"
W : "Supprimer un flag sur le mail"
o : "Trier les mails"
a : "Ajouter un fichier au mail (pièce jointe)"
h : "voir les en-têtes du mail"
<Tab> | j : "Sélectionner le mail non lu suivant"
s : "Sauvegarder le mail"
v : "Regarder pièces-jointes"
d : "Supprimer le mail courant"
D : "Sélectionner tous les mails à supprimer"
> : "Défiler la liste des mails vers le bas"
< : "Défiler la liste des mails vers le haut"
q : "Quitter l'écran"
i : "Revenir à l'index"
t : "taguer le mail courant"
T : "taguer tous les mails correspondant à la recherche"
^T : "dé-taguer tous les mails correspondant à la recherche"
* : "Aller au dernier mail reçu"
~~~

## Motifs de recherche

Les actions de type recherche, tag… savent utiliser des motifs pour sélectionner les messages. On peut utiliser un ou plusieurs motifs :

~~~
~A              tous les messages
~b EXPR         messages qui contiennent EXPR dans le corps
~B EXPR         messages qui contiennent EXPR dans tout le message
~c USER         messages en cc: à USER
~C EXPR         messages avec to: EXPR ou bien cc: EXPR
~D              messages supprimés
~d [MIN]-[MAX]  messages dont ``date-sent'' ets dans la plage de date
~E              messages expirés
~e EXPR         messages qui contiennent EXPR dans le champ ``Sender''
~F              messages marqués d'un drapeau
~f USER         messages provenant de USER
~g              messages signés avec PGP
~G              messages chiffrés avec PGP
~h EXPR         messages qui contiennent EXPR dans un des entêtes
~k              messages qui contiennent des éléments PGP
~i ID           messages dont ID est trouvé dans le champ ``Message-ID''
~L EXPR         messages envoyés ou reçu de EXPR
~l              messages adressés à une liste de diffusion
~m [MIN]-[MAX]  messages dans la plage MIN à MAX *)
~n [MIN]-[MAX]  messages avec un score compris entre MIN et MAX *)
~N              nouveaux messages
~O              anciens messages
~p              messages qui vous sont adressés (utilise $alternates)
~P              messages que vous avez écrit (utilise $alternates)
~Q              messages qui ont été répondus
~R              messages lus
~r [MIN]-[MAX]  messages dont le champ ``date-received'' est dans la plage de date
~S              superseded messages
~s SUBJECT      messages ayant SUBJECT dans le champ ``Subject''
~T              messages marqués
~t USER         messages adressés à USER
~U              messages non lus
~v              message dans une discussion condensée
~x EXPR         messages contenant EXPR dans le champ `References'
~y EXPR         messages contenant EXPR dans le champ `X-Label'
~z [MIN]-[MAX]  messages dont la taille est comprise entre MIN et MAX *)
~=              messages dupliqués (voir $duplicate_threads)
~~~

Où `EXPR`, `USER`, `ID`, et `SUBJECT` sont des expressions régulières.

*) Les formes `<[MAX]`, `>[MIN]`, `[MIN]-` et `-[MAX]` sont aussi autorisées.

## Chiffrer ses mails avec GPG

Voici les options de configuration de base :

~~~
# Use GPGME
set crypt_use_gpgme = yes
set crypt_replysign = yes
set crypt_replyencrypt = yes
set crypt_replysignencrypted = yes
set crypt_verify_sig = yes
set crypt_autosign = yes

# Definir la clé de chiffrement :
set pgp_sign_as = 0x53415200
~~~

Après avoir terminé la rédaction d'un mail, voici la suite de commande à suivre pour un mutt configuré en FR :

~~~
p : Activer le mode de chiffrement
c : Pour chiffrer le mail (sinon, plusieurs modes son proposés)
y : Pour envoyer le mail
o : Pour valider la sélection de la clé de chiffrement.
~~~

## Quelques séquences utiles

### Jeter un œil sur une série de mails avant de les déplacer en masse :

* Dans la liste des messages ;
* `l` pour filtrer la liste ;
* `~s '\[evomaintenance\]'` le sujet doit contenir `[evomaintenance]` ;
* une fois les mails parcourus ;
* `T` pour taguer tous les mails (la recherche est normalement rappelée, il suffit de valider) ;
* `;s` pour indiquer qu'on veut déplacer tous les mails tagués ;
* saisie du dossier cible, par exemple `=.evomaintenance/`.

## Astuces de configuration

Stocker ses mails dans Maildir et utiliser un dossier brouillon et une copie d'envoi.

~~~{.bash}
set folder="~/Maildir"
set spoolfile = ~/Maildir
set record="+.Sent"
set postponed="+.Drafts"
~~~

Garder un historique des commandes et motifs de recherche :

~~~{.bash}
set history=1024
set save_history=2048
set history_file="~/.mutt/history"
~~~

Trier par thread par défaut, avec le thread entier qui suit la date du dernier message :

~~~{.bash}
set sort=threads # default sort messages by thread
set sort_browser=reverse-date # showing mbox list default to newest first
set sort_aux=last-date-received # showing threads with youngest message last
~~~

Format de date plus complet :

~~~{.bash}
set date_format="%Y-%m-%d %H:%M"
set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"
~~~

Si on a beaucoup de mails dans la boîte et qu'on veut le "numéro" du mail sur sur plus de 2 chiffres, il suffit d'indiquer `%3C`, `%4C`…

Avec `%d`, la date est affichée (en utilisant le format indiqué pour `date_format` mais dans le fuseau horaire de l'expéditeur. Pour l'avoir dans le fuseau horaire local, il suffit de changer pour `%D`.

Toute les options de format d'affichage de l'index (et des dates) sont "consultables dans la documentation":http://www.mutt.org/doc/manual/#index-format

Désactiver le protocole CMS :

Ajouter cette directive dans /etc/Muttrc :

~~~{.bash}
set crypt_use_gpgme=no
~~~