Lerm-IT

Blog traitant de technologies informatiques. Logiciel libre, AdminSys, DevOps et GNU/Linux !

01 May 2020

[Mutt] Connexion à GMail ou GSuite

Mutt ou NeoMutt sont des MUA en TUI. Non ne partez pas tout de suite !! Je vais vous expliquer.

Un MUA est un Mail User Agent c’est-à-dire un client pour lire ses mails. C’est ce que sont les logiciels Mutt et NeoMutt, mais ils ont une petite particularité: ils sont exploités via une TUI (Text User Interface). Ceci signifie que l’affichage et l’utilisation sont réalisés dans votre terminal. Ceci peut sembler surprenant de premier abord mais l’utilisation d’un tel système fait rapidement gagner du temps et de la mémoire vive (Je vous invite à faire une analyse de la mémoire consommée par vos WebMails…).

Il existe deux grandes versions du logiciel: Mutt1 et NeoMutt 2. Un peu à l’image de MySQL et MariaDB, Mutt est le produit historique et NeoMutt en est un fork. Celui-ci apporte des nouvelles fonctionnalités et est compatible avec Mutt dans une grande majorité des cas. Les deux projets sont toujours actifs et le choix de l’utilisation de l’un ou l’autre est libre.

Installation

L’installation de Mutt ou NeoMutt est assez simple nous ne la détaillerons pas ici. Disons simplement que votre gestionnaire de paquet (apt-get, yum…) a sûrement le paquet dans ses dépôts. Aussi un simple apt-get install mutt ou yum install mutt devrait faire l’affaire.

Fichiers de configurations

La configuration de Mutt peut être réalisée dans 3 fichiers distincts :

/etc/Muttrc:
Configuration globale à tous les utilisateurs. Souvent pré configuré par votre distribution Linux. Nous n’y toucherons pas.
~/.muttrc
Configuration personnelle que nous allons éditer ici. Ce fichier de configuration est personnel et peut contenir des identifiants de connexion. Aussi il convient de faire attention aux droits qu’on applique sur celui-ci.
~/.mutt/muttrc:
Fichier de configuration personnel lui aussi. Étant dans le dossier .mutt il favorise son versionnement dans un système comme git.

Dans ces fichiers-là, nous ajoutons des directives de type set key = value pour faire une configuration.

Préparer son compte GSuite

Par défaut votre compte GSuite ou GMail n’est pas autorisé à être accédé par un autre moyen que les API Google. Hors ici nous souhaitons utiliser une méthode de connexion via IMAP/SMTP. Nous devons donc configurer notre compte. Pour cela deux possibilités

Vous avez activé l’authentification à deux étapes

Si vous avez activé l’authentification à deux étapes bravo. Pour pouvoir se connecter à Mutt il nous est nécessaire de créer un mot de passe unique.

Pour cela rendez vous ici https://myaccount.google.com/u/0/apppasswords et créer un nouveau mot de passe (Le choix du type d’application importe peu, j’ai mis Autre personnellement). Une fois l’application créée un mot de passe vous sera présenté. Conservez-le précieusement, il vous servira à vous connecter par la suite et ne pourra jamais être récupéré si vous le perdez (Il faudra en créer un nouveau).

Vous n’avez pas activé l’authentification à deux étapes

Si vous n’avez pas activé l’authentification à deux étapes je ne peux que vous inviter à le faire. Mais si vous souhaitiez tout de même utiliser Mutt sans d’autre authentification il est possible de simplement désactiver la protection de Google.

Rendez-vous ici: https://myaccount.google.com/u/2/lesssecureapps et cocher l’option “Autoriser les applications moins sécurisées”.

Activer l’IMAP dans votre boite GMail

Enfin la dernière chose à faire est d’activer l’IMAP dans votre boite GMail. Ceci se fait via les paramètres, onglet (Transfert POP/IMAP)[https://mail.google.com/mail/u/0/#settings/fwdandpop].

Configurer Mutt

Nous pouvons maintenant configurer notre logiciel. Éditer le fichier ~/.muttrc. Voici mon fichier de configuration pour mon compte GSuite. Le mot de passe à utiliser est celui que vous avez récupéré lors de l'étape précédente (ou votre mot de passe global si vous n’avez pas activé la double authentification).

set realname = "Romain THERRAT"
set from = "[email protected]"
set use_from = yes
set envelope_from = yes

set smtp_url = "smtps://[email protected]@smtp.gmail.com:465/"
set smtp_pass = "<mot de passe>"
set imap_user = "[email protected]"
set imap_pass = "<mot de passe>"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set ssl_force_tls = yes

# Store message headers locally to speed things up.
# If hcache is a folder, Mutt will create sub cache folders for each account which may speeds things up even more.
set header_cache = ~/.cache/mutt

# Store messages locally to speed things up, like searching message bodies.
# Can be the same folder as header_cache.
# This will cost important disk usage according to your e-mail amount.
set message_cachedir = "~/.cache/mutt"

# Specify where to save and/or look for postponed messages.
set postponed = +[Gmail]/Drafts

# Allow Mutt to open a new IMAP connection automatically.
unset imap_passive


# Keep the IMAP connection alive by polling intermittently (time in seconds).
set imap_keepalive = 300

# How often to check for new mail (time in seconds).
set mail_check = 120

# Editor
set editor = "vim"
set charset = "utf-8"
set record = '^'

Je vous conseille de créer le dossier ~/.mutt/cache pour pouvoir accélérer mutt si vous l’utiliser avec plusieurs comptes email.

$ mkdir ~/.cache/mutt

Vous pouvez maintenant démarrer mutt via la commande mutt, ou neomutt via la commande neomutt. Le premier démarrage devrait être un peu long, car il va télécharger la liste de vos emails mais les prochains seront plus rapides.

Aller plus loin

Raccourcis clavier

J’ai fait un aide mémoire disponible ici qui recense les principaux raccourcis clavier. Je vous invite à en prendre connaissance.

Forcer la récupération des mails

Il peut être nécessaire de forcer la récupération des mails dans mutt. Comme nous l’avons vu dans la configuration, mes mails sont récupérés toutes les 120 secondes (2 minutes) ceci peut être limitant quand on est au téléphone par exemple. J’ai donc ajouté ceci à ma configuration pour permettre de forcer la récupération des mails via la touche G.

# G to get mail
bind index G imap-fetch-mail

Ordre des mails

Par défaut les mails ne sont pas classés par threads et sont affichés du plus ancien au plus récent. Nous avons été habitués à l’inverse aussi nous pouvons grouper nos mails et les afficher du plus récent au plus ancien avec cette configuration.

# Mailbox ordering
set sort_aux = reverse-last-date-received
set sort = threads

Conclusion

Avec un peu d’habitude l’utilisation de Mutt permet d'être réellement très efficace dans sa gestion de mail. Je vous invite donc à persévérer dans son utilisation !


  1. Site web de Mutt ↩︎

  2. Site web de NeoMutt ↩︎