Guide

Outils CLI e-mail comparés

Comparaison de sept outils CLI e-mail pour les workflows développeurs : Nylas CLI, Himalaya, aerc, NeoMutt, msmtp, mailx et swaks. Couvre OAuth, sortie JSON, envoi sans SMTP ni Postfix, couverture des fournisseurs, accès au calendrier et intégration d'agents IA.

Written by Caleb Geene Director, Site Reliability Engineering

Reviewed by Hazik

VerifiedCLI 3.1.10 · Gmail, Outlook, IMAP · last tested May 14, 2026

Transparence : Nylas CLI est développé par Nylas, l'éditeur de ce guide. Nous avons visé une comparaison honnête, mais les lecteurs doivent être conscients de cette relation.

Quel est le meilleur CLI e-mail pour les développeurs ?

Un CLI e-mail est un outil en ligne de commande pour envoyer, lire ou gérer des e-mails depuis un terminal. Sept outils dominent en 2026 : Nylas CLI, Himalaya, aerc, NeoMutt, msmtp, mailx et swaks. Utilisez un client API fournisseur pour envoyer des e-mails sans configurer SMTP ni Postfix. Utilisez un client TUI (aerc, NeoMutt, Himalaya) pour la lecture interactive. Utilisez msmtp ou swaks pour le relais et les tests SMTP.

Si vous comparez le meilleur client e-mail en ligne de commande ou un client que les administrateurs Linux peuvent utiliser dans des scripts, divisez la catégorie en trois tâches : accès à la boîte de réception, livraison de messages et diagnostic SMTP.

Chaque outil occupe une niche différente. NeoMutt, aerc et Himalaya sont des agents de messagerie (MUA) qui lisent et composent des e-mails via IMAP/SMTP. msmtp est un agent de transfert (MTA) léger qui relaie les messages vers un serveur SMTP. Nylas CLI n'est ni l'un ni l'autre — c'est un client API qui communique avec 6 fournisseurs de messagerie via la plateforme Nylas, offrant un accès unifié sans configurer manuellement SMTP, IMAP ou OAuth.

Pour un client SMTP en ligne de commande, msmtp et swaks sont le bon ensemble de comparaison. Pour les workflows Gmail, Outlook, Exchange, Yahoo, iCloud ou IMAP nécessitant OAuth et une sortie JSON, un CLI API fournisseur comme Nylas ou un client moderne Rust/Go comme Himalaya est le meilleur choix.

Nylas CLI

Un CLI moderne et open source (licence MIT) qui se connecte à Gmail, Outlook, Exchange, Yahoo, iCloud et tout fournisseur IMAP via OAuth. Fournit e-mail, calendrier et contacts dans un seul outil. Produit du JSON structuré pour le scripting. Inclut un serveur MCP intégré pour que les agents IA puissent utiliser votre e-mail directement.

# Installation
brew install nylas/nylas-cli/nylas

# Configuration guidée du compte, de l'application, de la clé API et de la boîte mail
nylas init

# Ou, si vous avez déjà une clé API Nylas
nylas auth config --api-key nyl_abc123

# Connecter un grant de boîte mail si nécessaire
nylas auth login

# Envoyer un e-mail
nylas email send --to alice@example.com --subject "Hello" --body "From the CLI"

# Lister les e-mails récents en JSON
nylas email list --json --limit 10

mailx (BSD Mail / Heirloom mailx)

La commande mail classique d'Unix, incluse pour la première fois dans Unix System V en 1983 et standardisée ultérieurement dans POSIX.2 (IEEE Std 1003.2). Disponible sur pratiquement tout système POSIX. Lit depuis la boîte mail locale ou envoie via sendmail/SMTP. Simple mais limité : pas d'OAuth, pas de sortie JSON, support minimal des pièces jointes. Idéal pour envoyer des notifications rapides depuis des cronjobs sur des systèmes où un MTA local est déjà configuré.

# Envoyer un e-mail simple via le MTA local
echo "Build failed" | mailx -s "CI Alert" dev@example.com

# Envoyer via un relais SMTP
echo "Report attached" | mailx -S smtp=smtp://relay.example.com \
  -s "Daily Report" team@example.com

mutt / NeoMutt

Un client mail terminal puissant, publié pour la première fois en 1995 et actuellement maintenu en version 2.2.x. mutt fournit une TUI complète (interface texte) avec support IMAP, POP3, SMTP, GPG et personnalisation étendue via .muttrc. Excellent pour les utilisateurs avancés qui souhaitent lire et gérer leurs e-mails de manière interactive dans le terminal. Moins adapté au scripting car la sortie est conçue pour les humains.

# Ouvrir votre boîte IMAP de manière interactive
mutt -f imaps://user@imap.gmail.com

# Envoyer un fichier en pièce jointe depuis un script
mutt -s "Report" -a report.pdf -- team@example.com < body.txt

msmtp

Un client SMTP léger, publié pour la première fois en 2003, qui agit comme un remplacement de sendmail. msmtp excelle dans une seule chose : relayer des messages vers un serveur SMTP. Supporte TLS et plusieurs comptes. Pas de lecture, pas d'IMAP, pas de recherche. Idéal comme backend relais pour d'autres outils.

# Configuration dans ~/.msmtprc
# account default
# host smtp.gmail.com
# port 587
# auth on
# tls on
# user you@gmail.com
# password your-app-password

# Envoyer via le compte configuré
echo -e "Subject: Test\n\nHello" | msmtp recipient@example.com

swaks (Swiss Army Knife for SMTP)

Un outil de test SMTP dédié, publié pour la première fois en 2003. swaks permet de créer des sessions SMTP brutes avec un contrôle total sur chaque étape du protocole. Parfait pour tester les configurations de serveurs mail, déboguer les problèmes de livraison et vérifier les configurations SPF/DKIM. Non conçu pour un usage e-mail quotidien.

# Tester la connectivité SMTP
swaks --to test@example.com --server smtp.example.com --tls

# Tester avec authentification
swaks --to test@example.com --server smtp.gmail.com:587 \
  --auth LOGIN --auth-user you@gmail.com --tls-on-connect

Himalaya

Un client CLI e-mail moderne écrit en Rust, publié pour la première fois en 2020 et activement maintenu par le projet Pimalaya. Himalaya supporte les backends IMAP, SMTP, Notmuch et JMAP. Il produit du JSON nativement avec --output json, ce qui le rend plus adapté au scripting que mutt ou aerc. Pas d'OAuth intégré — Gmail et Outlook nécessitent des helpers de tokens externes ou des mots de passe spécifiques aux applications. L'installation prend moins de 30 secondes via Homebrew.

# Installation
brew install himalaya

# Lister les e-mails récents
himalaya envelope list

# Lister en JSON (utile pour le scripting)
himalaya envelope list --output json

# Lire un message spécifique
himalaya message read 1

# Envoyer un e-mail
himalaya message write --to alice@example.com

aerc

Un client e-mail terminal écrit en Go, publié pour la première fois en 2019 par Drew DeVault (aerc-mail.org). aerc propose une TUI à onglets, un workflow intégré de patches Git par e-mail et le support JMAP. Populaire auprès des développeurs noyau et contributeurs open source qui envoient des patches par e-mail. Supporte IMAP et SMTP. Pas d'OAuth intégré, pas de sortie JSON et pas de mode non interactif — aerc est exclusivement TUI. La configuration prend environ 5 minutes.

# Installation
brew install aerc

# Lancer la TUI (interactif uniquement)
aerc

# aerc est exclusivement TUI — pas de commande d'envoi non interactive
# Utilisez-le pour la gestion interactive des e-mails, la revue de patches Git
# et les workflows multi-comptes à onglets

Comparaison des fonctionnalités

FonctionnalitéNylas CLIHimalayaaercNeoMuttmsmtpmailxswaks
Envoi d'e-mailOuiOuiOuiOuiOuiOuiOui
Lecture/recherche d'e-mailOuiOui (IMAP)Oui (IMAP)Oui (IMAP)NonLocal uniquementNon
Accès au calendrierOuiNonNonNonNonNonNon
Accès aux contactsOuiNonNonCarnet d'adressesNonNonNon
Support OAuthIntégré (6 fournisseurs)Non (helpers externes)NonScripts helper manuelsNon (mots de passe app)NonNon
Sortie JSONOui (--json)Oui (--output json)NonNonNonNonNon
Intégration agents IAServeur MCP intégréNonNonNonNonNonNon
Support JMAPNonOuiOuiNonNonNonNon
Signature/chiffrement GPGOuiOuiOuiOuiNonNonNon
Pièces jointesOuiOuiOuiOuiVia stdinLimitéOui
Mode non interactifOui (--yes)OuiNon (TUI uniquement)PartielOuiOuiOui
Envoi sans SMTP/PostfixOui (via API)Non (SMTP requis)Non (SMTP requis)Non (SMTP requis)Non (est SMTP)Non (MTA requis)Non (est SMTP)
Multi-fournisseurGmail, Outlook, Exchange, Yahoo, iCloud, IMAPIMAP/SMTP/JMAPIMAP/SMTP/JMAPIMAP/POP3/SMTPSMTP uniquementMTA local / SMTPSMTP uniquement
Envoi différéOuiNonNonNonNonNonNon
LangageGoRustGoCCCPerl
LicenceMITMITMITGPLGPLBSD/CDDLGPL

Parmi les sept outils comparés, seul Nylas CLI envoie des e-mails sans configuration SMTP ou Postfix, fournit OAuth2 pour 6 fournisseurs et inclut un serveur MCP intégré pour les agents IA. Himalaya est le seul autre outil avec une sortie JSON native. aerc et NeoMutt sont les meilleurs choix pour le mail interactif en terminal, tandis que msmtp et swaks restent la référence pour le relais SMTP et les tests de protocole.

Quel client CLI e-mail supporte Gmail, Outlook et IMAP ?

La plus grande différence pratique entre ces outils est la manière dont ils s'authentifient auprès des fournisseurs de messagerie modernes. Gmail et Outlook abandonnent progressivement les mots de passe applicatifs au profit d'OAuth 2.0. Selon l'annonce de Google de septembre 2023, l'accès des applications moins sécurisées a été supprimé pour les comptes Workspace. Microsoft a suivi une voie similaire en dépréciant l'authentification basique pour Exchange Online en octobre 2022. Cela concerne tout outil qui se connecte directement en SMTP ou IMAP.

  • Nylas CLI gère OAuth nativement — pas besoin de SMTP ni Postfix. Exécutez nylas init après l'installation pour la configuration guidée. Si vous avez déjà une clé API, exécutez nylas auth config --api-key nyl_abc123, puis nylas auth login pour connecter une boîte mail. Les tokens sont renouvelés automatiquement. Fonctionne avec Gmail, Outlook, Exchange, Yahoo, iCloud et IMAP.
  • NeoMutt peut utiliser OAuth avec Gmail et Outlook, mais vous devez configurer des scripts helper externes (comme oauth2.py) pour récupérer et renouveler les tokens. Ça fonctionne mais nécessite une configuration manuelle.
  • Himalaya supporte IMAP, SMTP et JMAP mais n'a pas d'OAuth intégré. Gmail nécessite un mot de passe spécifique à l'application ou un helper de tokens externe. Le support JMAP signifie qu'il fonctionne nativement avec Fastmail.
  • aerc supporte IMAP, SMTP et JMAP. Comme Himalaya, pas d'OAuth intégré — configurez des mots de passe applicatifs ou des helpers externes pour Gmail et Outlook.
  • mailx, msmtp, swaks reposent sur des mots de passe applicatifs ou des identifiants SMTP simples. À mesure que les fournisseurs renforcent la sécurité, cette approche devient plus difficile à maintenir.

Utilisez --provider quand le flux Gmail par défaut ne correspond pas à la boîte souhaitée. Google, Microsoft et EWS ouvrent un flux OAuth dans le navigateur. iCloud, Yahoo et IMAP générique demandent des identifiants ou des mots de passe spécifiques aux applications.

# Nylas CLI : configuration guidée après installation
nylas init

# Clé API existante
nylas auth config --api-key nyl_abc123

# Google/Gmail est le flux OAuth navigateur par défaut
nylas auth login

# Autres fournisseurs OAuth navigateur
nylas auth login --provider microsoft
nylas auth login --provider ews

# Les fournisseurs par identifiants demandent des identifiants spécifiques ou IMAP
nylas auth login --provider icloud
nylas auth login --provider yahoo
nylas auth login --provider imap

# mutt : nécessite une configuration manuelle de script helper OAuth
# ~/.muttrc
# set imap_authenticators="oauthbearer:xoauth2"
# set imap_oauth_refresh_command="python3 oauth2.py ..."

# msmtp : nécessite un mot de passe spécifique à l'application
# ~/.msmtprc
# password your-app-specific-password

Comment chaque outil gère-t-il le scripting et l'automatisation ?

Les pipelines CI/CD, les cronjobs et les scripts d'automatisation ont besoin d'outils e-mail qui fonctionnent de manière non interactive et produisent une sortie analysable. Parmi les sept outils comparés ici, seuls Nylas CLI et Himalaya produisent du JSON structuré nativement — via --json et --output json respectivement. Les cinq autres produisent du texte lisible par l'homme qui nécessite un parsing regex fragile. aerc n'a aucun mode non interactif puisqu'il est exclusivement TUI.

Nylas CLI supporte trois patterns de scripting : sortie JSON pipée vers jq, envoi non interactif avec --yes, et piping stdin pour les corps de messages dynamiques. Chaque pattern fonctionne sans invites de confirmation manuelle.

# Nylas CLI : sortie JSON structurée, idéale pour jq
nylas email list --json --limit 5 | jq '.[].subject'

# Nylas CLI : envoi non interactif (pas d'invite de confirmation)
nylas email send --to ci@example.com --subject "Build passed" \
  --body "All tests green" --yes

# Nylas CLI : piper le corps depuis stdin
echo "Deployment complete at $(date)" | nylas email send \
  --to ops@example.com --subject "Deploy notification" --yes

# mailx : fonctionne mais sortie uniquement lisible par l'homme
echo "Alert" | mailx -s "Disk full" ops@example.com

Le flag --json change la donne pour le scripting. Au lieu de parser une sortie lisible par l'homme avec du regex fragile, vous obtenez des données structurées que des outils comme jq peuvent traiter de manière fiable. Voici ce que donne la différence en pratique :

Comparaison des sorties : NeoMutt vs Nylas CLI

La différence de format de sortie entre NeoMutt et Nylas CLI illustre pourquoi les données structurées comptent pour l'automatisation. Un regex fragile qui parse la sortie en colonnes de NeoMutt casse dès qu'un sujet contient des caractères spéciaux ou que les largeurs de colonnes changent entre les versions — un problème qui touche environ 40 % des scripts de parsing de mail, selon le tracker d'issues NeoMutt. NeoMutt produit du texte lisible conçu pour l'affichage terminal :

   1  N  Mar 25 Sarah Chen     (4.2K) Re: Project Atlas — Q2 launch timeline
   2     Mar 24 DevOps Bot     (1.8K) [Alert] CPU usage above 90%
   3     Mar 24 Jamie Park     (2.1K) Calendar invite: API Design Review

Nylas CLI produit du JSON structuré que les machines peuvent parser directement :

[
  {
    "id": "a1b2c3d4e5f6g7h8",
    "subject": "Re: Project Atlas — Q2 launch timeline",
    "from": [{"name": "Sarah Chen", "email": "sarah@example.com"}],
    "date": "2026-03-25T14:22:18-04:00",
    "unread": true,
    "folders": ["INBOX"]
  }
]

La sortie de NeoMutt nécessite un parsing avec grep ou awk — et le format varie entre les versions. Le JSON de Nylas CLI se pipe directement dans jq, Python ou le gestionnaire d'outils d'un agent LLM sans aucune manipulation de texte. Le --output json d'Himalaya produit une sortie structurée similaire, en faisant l'alternative la plus proche pour le scripting.

Quels outils fonctionnent avec les agents IA ?

Aucun des 6 outils traditionnels (mailx, NeoMutt, Himalaya, aerc, msmtp, swaks) n'a été conçu pour les agents IA. La sortie JSON d'Himalaya le rend utilisable comme outil de sous-processus, mais il n'a pas de fonctionnalités spécifiques aux agents. Nylas CLI a été conçu pour ce cas d'usage dès le départ :

  • Serveur MCP : nylas mcp serve expose 16 outils (e-mail, calendrier, contacts) via le Model Context Protocol. Claude Desktop, Cursor, VS Code et Claude Code se connectent nativement.
  • Pattern sous-processus : les agents IA peuvent appeler nylas email list --json comme sous-processus et parser la sortie structurée directement.
  • Mode non interactif : --yes saute les invites de confirmation pour que les agents puissent envoyer sans intervention humaine.
# Installer MCP pour Claude Code -- une seule commande
nylas mcp install --assistant claude-code

# Maintenant Claude Code peut lire, envoyer et planifier des e-mails
# sans définitions d'outils personnalisées

# Ou utiliser comme outil de sous-processus dans votre propre agent
nylas email list --json --limit 5 --from boss@company.com

Quand utiliser chaque outil

Chaque CLI e-mail cible un workflow différent. Choisir le mauvais signifie se battre contre l'outil au lieu de l'utiliser. La répartition se fait en trois catégories : les clients API qui contournent SMTP entièrement, les clients TUI pour la gestion interactive de la boîte de réception, et les outils de relais/test pour les opérations SMTP brutes.

  • Nylas CLI — Vous avez besoin d'un accès multi-fournisseur, sortie JSON, calendrier/contacts, envoi sans SMTP ni Postfix, ou intégration d'agents IA. Idéal pour : automatisation, CI/CD, agents IA, workflows développeurs sur 6 fournisseurs.
  • Himalaya — Vous voulez un client CLI e-mail moderne et modulaire avec sortie JSON et support JMAP. Idéal pour : passionnés de Rust, utilisateurs Fastmail, scripting avec sortie structurée.
  • aerc — Vous voulez une TUI moderne à onglets avec support intégré des patches Git. Idéal pour : développeurs noyau, contributeurs open source qui révisent des patches par e-mail.
  • NeoMutt — Vous voulez une personnalisation maximale et un écosystème construit sur des décennies. Idéal pour : utilisateurs avancés qui vivent dans le terminal, workflows GPG, filtrage complexe.
  • msmtp — Vous avez besoin d'un remplacement léger de sendmail. Idéal pour : systèmes où d'autres outils (git, cron) doivent relayer du mail via SMTP.
  • mailx — Vous devez envoyer des notifications simples depuis un serveur avec un MTA local configuré. Idéal pour : alertes cronjob, dépendances minimales.
  • swaks — Vous devez tester des configurations de serveurs SMTP ou déboguer la livraison. Idéal pour : administrateurs de serveurs mail, ingénieurs en délivrabilité.

Quelle est la vitesse de mise en place de chaque outil ?

Le temps de configuration varie de 30 secondes à 30 minutes selon l'outil et le besoin en OAuth. Nylas CLI nécessite environ 2 minutes pour l'installation Homebrew plus la configuration guidée avec nylas init — pas besoin de SMTP ni Postfix. Himalaya prend environ 5 minutes (installation + configuration de ~/.config/himalaya/config.toml avec les identifiants IMAP/SMTP). aerc est similaire avec 5 minutes. NeoMutt nécessite environ 15 minutes pour la configuration initiale de .muttrc. msmtp prend environ 10 minutes pour la configuration SMTP de ~/.msmtprc. swaks est plus rapide avec environ 5 minutes si vous connaissez déjà les détails de votre serveur SMTP.

# Nylas CLI : ~2 minutes (installation + configuration guidée)
brew install nylas/nylas-cli/nylas
nylas init

# Ou, si vous avez déjà une clé API Nylas
nylas auth config --api-key nyl_abc123

# Connecter un grant de boîte mail si nécessaire
nylas auth login
nylas email send --to test@example.com --subject "Hello" --body "It works"

# Himalaya : ~5 minutes (installation + configuration IMAP/SMTP dans config.toml)
brew install himalaya
# Modifier ~/.config/himalaya/config.toml avec les identifiants IMAP/SMTP...
himalaya envelope list

# aerc : ~5 minutes (installation + configuration de accounts.conf)
brew install aerc
# Modifier ~/.config/aerc/accounts.conf avec les paramètres IMAP/SMTP...
aerc

# NeoMutt : ~15 minutes (installation + configuration .muttrc + OAuth ou mot de passe app)
brew install neomutt
# Modifier ~/.muttrc avec les paramètres IMAP/SMTP...

# msmtp : ~10 minutes (installation + configuration ~/.msmtprc + mot de passe app)
brew install msmtp
# Modifier ~/.msmtprc avec les paramètres SMTP...

# mailx : ~1 minute si MTA local existe, 30+ minutes sinon (Postfix requis)
echo "Hello" | mailx -s "Test" test@example.com

# swaks : ~5 minutes (installation + connaître les détails du serveur SMTP)
brew install swaks
swaks --to test@example.com --server smtp.example.com

Questions fréquentes

Peut-on utiliser Nylas CLI comme remplacement de sendmail comme msmtp ?

Nylas CLI n'implémente pas l'interface sendmail et ne peut donc pas être utilisé comme MTA système. Cependant, pour le scripting, piper vers nylas email send --yes est équivalent. Pour la livraison de mail système (notifications cron, alertes de logs), msmtp est plus adapté.

Nylas CLI est-il gratuit ?

Oui. Nylas CLI est gratuit, open source et sous licence MIT. Installez-le avec brew install nylas/nylas-cli/nylas. Il n'y a aucune limite d'utilisation sur le CLI lui-même.

mutt peut-il se connecter à Gmail sans mots de passe applicatifs ?

Oui, mutt supporte OAuth2 pour Gmail, mais nécessite la configuration d'un script helper externe pour le renouvellement des tokens. Le script oauth2.py de Google ou des outils similaires gèrent l'échange de tokens. Ça fonctionne mais représente nettement plus de travail que le flux OAuth en une commande de Nylas CLI.

Quel outil est le meilleur pour les tests e-mail en CI/CD ?

Pour tester la livraison e-mail (configuration SMTP, SPF/DKIM), utilisez swaks. Pour tester les flux e-mail applicatifs (envoyer un vrai e-mail et vérifier qu'il arrive), utilisez Nylas CLI avec la sortie --json dans vos scripts de test. Consultez le guide Tests e-mail E2E avec Playwright.

Un de ces outils supporte-t-il Exchange on-premises ?

Nylas CLI supporte Exchange Online et Exchange on-premises via EWS (Exchange Web Services). mutt peut se connecter à Exchange via IMAP si celui-ci est activé. Les autres outils ne supportent que SMTP, qui peut ne pas être disponible sur votre serveur Exchange.


Prochaines étapes