Neomutt
Neomutt est un client mail en ligne de commande, fork de mutt. Pas de GUI, tout au clavier, ultra configurable.
J’utilise neomutt pour gérer mon Gmail directement depuis le terminal - même setup que le reste de mon workflow (nvim, khal, khard…). Pas de dépendance à un client graphique, tout est dans des fichiers texte, tout est scriptable.
Configuration de base
Section intitulée « Configuration de base »Fichier principal : ~/.config/neomutt/neomuttrc
# Compte IMAPset imap_user = "ton.adresse@gmail.com"set imap_pass = "ABCD EFGH IJKL MNOP" # mot de passe d'application Gmailset smtp_url = "smtps://ton.adresse@gmail.com@smtp.gmail.com:465/"set smtp_pass = "ABCD EFGH IJKL MNOP"set from = "ton.adresse@gmail.com"set realname = "Ton Nom"set folder = "imaps://imap.gmail.com/"
# Dossiersset spoolfile = "+INBOX"set postponed = "+[Gmail]/Brouillons"set record = "" # Gmail sauvegarde les envoyés auto → pas de doublonset trash = "+[Gmail]/Corbeille"
# Comportementset mail_check = 60set timeout = 10set sort = threadsset sort_aux = last-date-receivedset editor = "nvim"
# Cacheset header_cache = "~/.cache/neomutt/headers"set message_cachedir = "~/.cache/neomutt/bodies"
# Découverte automatique des dossiers IMAPset imap_check_subscribed = yes
# Rendu HTMLauto_view text/htmlalternative_order text/plain text/enriched text/html
record = ""évite les doublons - Gmail sauvegarde automatiquement les envois côté serveur.
Le mot de passe à renseigner est un mot de passe d’application Gmail, pas le mot de passe du compte. À générer dans les paramètres de sécurité Google.
# Sidebarset sidebar_visible = yesset sidebar_width = 25set sidebar_short_path = yesset sidebar_delim_chars = "/"set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S"
# Ordre des dossiersmailboxes +INBOX \ "+[Gmail]/Brouillons" \ "+[Gmail]/Corbeille" \ "+[Gmail]/Important" \ "+[Gmail]/Messages envoyés" \ "+[Gmail]/Spam"
# Navigationbind index,pager \CP sidebar-prevbind index,pager \CN sidebar-nextbind index,pager \CO sidebar-openbind index,pager B sidebar-toggle-visibleFormat sidebar_format :
%B→ nom du dossier%?F? [%F]?→ nb de flagged si > 0%*→ espace%?N?%N/?→ nb de non-lus si > 0%S→ total de messages
Avec
imap_check_subscribed = yes, les dossiers sont découverts automatiquement. Le blocmailboxessert uniquement à contrôler l’ordre d’affichage.
Les noms des dossiers Gmail varient selon la langue du compte. Pour voir les noms exacts disponibles sur ton compte :
cpuis?dans neomutt pour ouvrir le browser IMAP.
Flags des messages
Section intitulée « Flags des messages »Dans l’index, chaque mail affiche un ou plusieurs flags :
| Flag | Signification |
|---|---|
N | New - arrivé depuis la dernière session, non lu |
O | Old - présent avant la dernière session, non lu |
r | Replied - tu as répondu |
! | Flagged - marqué (= étoile Gmail / drapeau Outlook) |
D | Deleted - marqué pour suppression |
* | Tagged - sélectionné pour action groupée |
+ | To me - destinataire direct |
C | CC - en copie |
L | List - envoyé via mailing list |
S | Signed - signé GPG |
E | Encrypted - chiffré GPG |
N et O sont tous les deux non lus - la différence : N est arrivé après ta dernière ouverture de neomutt, O était déjà là et jamais ouvert.
! et * ne sont pas la même chose :
!→ persistant, synchronisé IMAP (étoile Gmail). À utiliser pour marquer “à traiter”.*→ temporaire, local à la session. Sert uniquement à sélectionner des mails pour des actions groupées avec;.
Raccourcis essentiels
Section intitulée « Raccourcis essentiels »| Touche | Action |
|---|---|
j / k | Mail suivant / précédent |
<Enter> | Ouvrir le mail |
m | Nouveau mail |
r | Répondre |
R | Reply all |
f | Forwarder |
d | Supprimer |
u | Annuler suppression |
s | Déplacer vers un dossier |
c | Changer de dossier |
/ | Chercher |
l | Filtrer (limit) |
t | Tagger un mail |
T | Tagger par pattern |
; | Action sur tous les tagués |
F | Flaguer / déflaguer |
<Tab> | Prochain thread non lu |
<Space> | Replier / déplier un thread |
Pager (lecture)
Section intitulée « Pager (lecture) »| Touche | Action |
|---|---|
Space | Page suivante |
- | Page précédente |
j / k | Ligne suivante / précédente |
q | Retour à l’index |
h | Afficher les headers complets |
v | Voir les pièces jointes |
Neomutt regroupe les mails en threads via les headers IMAP :
Message-ID→ identifiant unique du mailIn-Reply-To→ ID du mail parentReferences→ toute la chaîne
set sort = threadsset sort_aux = last-date-receivedDans l’index, ▸ indique un thread replié. <Space> pour déplier, <Tab> pour sauter au prochain non lu.
Tagging et actions groupées
Section intitulée « Tagging et actions groupées »Le principe : tu sélectionnes un ensemble de mails par pattern, et tu leur appliques une action d’un coup.
Tagger :
t → toggle tag sur un mailT~N → tague tous les non lusT~f addr → tague tous les mails d'un expéditeur^T → détagger par patternPatterns disponibles :
~N → non lus~F → flaggés~D → supprimés~R → lus~O → old (non lus, pas nouveaux)~s mot → sujet contient "mot"~f addr → expéditeur~b mot → corps contient "mot"~d >7d → reçu il y a plus de 7 jours~A → tousActions groupées avec ; :
;d → supprimer tous les tagués;s → déplacer tous vers un dossier;! → flaguer tous;C → copier tousExemple - vider les notifications GitHub :
T~f notifications@github.com # tague tout ce qui vient de GitHub;d # supprime$ # syncLimit (filtrage de vue)
Section intitulée « Limit (filtrage de vue) »l filtre l’affichage de l’index sans toucher aux mails :
l ~N → que les non lusl ~F → que les flaggésl ~s "mot" → que les mails avec "mot" dans le sujetl ~A → reset, tout réafficherC’est ma façon préférée de traiter un type de mail en masse - filtrer, agir, reset.
Brouillons et postpone
Section intitulée « Brouillons et postpone »Le postpone est le mécanisme natif de neomutt pour interrompre une rédaction et y revenir plus tard :
- En cours de rédaction →
Ctrl+Opour postponer mdepuis l’index → neomutt propose automatiquement de reprendre le postponed
La différence avec un brouillon classique : le postpone sauve aussi le contexte de réponse (thread, destinataire). Avec set postponed = "+[Gmail]/Brouillons", les postponed sont aussi visibles depuis Gmail.
Couleurs
Section intitulée « Couleurs »Mutt/neomutt te laisse tout configurer : ce qui est coloré, comment, et selon quels critères (expéditeur, sujet, flags…). Aucun thème imposé, contrairement aux clients graphiques.
Sans config couleur, neomutt hérite des couleurs du terminal. Les thèmes viennent de la communauté ou s’écrivent à la main.
Je sépare les couleurs dans un fichier dédié, sourcé depuis le neomuttrc :
source ~/.config/neomutt/colors.rcDans mon cas j’utilise Gruvbox Dark - à adapter selon ton thème :
# Sidebarcolor sidebar_ordinary color246 color235color sidebar_new color142 color235color sidebar_flagged color208 color235color sidebar_highlight color235 color109color sidebar_indicator color223 color237color sidebar_divider color239 color235
# Indexcolor index color223 color235 "~A"color index color142 color235 "~N"color index color208 color235 "~F"color index color167 color235 "~D"color index_author color109 color235 "~N"color index_subject color142 color235 "~N"color index_date color246 color235
# Headerscolor header color246 color235 ".*"color header color109 color235 "^(From|To|Cc):"color header color214 color235 "^Subject:"color header color108 color235 "^Date:"
# Corpscolor quoted color246 color235color quoted1 color108 color235color quoted2 color109 color235color signature color239 color235
# UIcolor status color235 color214color prompt color214 color235color error color167 color235color search color235 color214