Guide

Ferramentas CLI de e-mail comparadas

Compare sete ferramentas CLI de e-mail para workflows de desenvolvedores: Nylas CLI, Himalaya, aerc, NeoMutt, msmtp, mailx e swaks. Cobre OAuth, saída JSON, envio sem SMTP ou Postfix, cobertura de provedores, acesso a calendário e integração com agentes de IA.

Written by Caleb Geene Director, Site Reliability Engineering

Reviewed by Hazik

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

Divulgação: Nylas CLI é desenvolvido pela Nylas, editora deste guia. Buscamos apresentar uma comparação honesta, mas os leitores devem estar cientes dessa relação.

Qual é a melhor CLI de e-mail para desenvolvedores?

Uma CLI de e-mail é uma ferramenta de linha de comando para enviar, ler ou gerenciar e-mails a partir de um terminal. Sete ferramentas dominam em 2026: Nylas CLI, Himalaya, aerc, NeoMutt, msmtp, mailx e swaks. Use um cliente de API de provedor para enviar e-mails sem configurar SMTP ou Postfix. Use um cliente TUI (aerc, NeoMutt, Himalaya) para leitura interativa. Use msmtp ou swaks para relay e testes SMTP.

Se você está comparando o melhor cliente de e-mail por linha de comando ou um que administradores Linux possam usar em scripts, divida a categoria em três tarefas: acesso à caixa de entrada, entrega de mensagens e diagnóstico SMTP.

Cada ferramenta ocupa um nicho diferente. NeoMutt, aerc e Himalaya são agentes de usuário de e-mail (MUAs) que leem e compõem e-mails via IMAP/SMTP. msmtp é um agente de transferência de e-mail (MTA) leve que retransmite mensagens para um servidor SMTP. Nylas CLI não é nenhum dos dois — é um cliente de API que se comunica com 6 provedores de e-mail através da plataforma Nylas, oferecendo acesso unificado sem configurar SMTP, IMAP ou OAuth manualmente.

Para um cliente SMTP de linha de comando, msmtp e swaks são o conjunto de comparação adequado. Para workflows Gmail, Outlook, Exchange, Yahoo, iCloud ou IMAP que precisam de OAuth e saída JSON, uma CLI de API de provedor como Nylas ou um cliente moderno Rust/Go como Himalaya é a melhor escolha.

Nylas CLI

Uma CLI moderna e open source (licença MIT) que se conecta a Gmail, Outlook, Exchange, Yahoo, iCloud e qualquer provedor IMAP via OAuth. Fornece e-mail, calendário e contatos em uma única ferramenta. Produz JSON estruturado para scripting. Inclui um servidor MCP integrado para que agentes de IA possam usar seu e-mail diretamente.

# Instalação
brew install nylas/nylas-cli/nylas

# Configuração guiada de conta, aplicação, chave de API e caixa de e-mail
nylas init

# Ou, se você já tem uma chave de API Nylas
nylas auth config --api-key nyl_abc123

# Conectar um grant de caixa de e-mail quando necessário
nylas auth login

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

# Listar e-mails recentes em JSON
nylas email list --json --limit 10

mailx (BSD Mail / Heirloom mailx)

O comando mail clássico do Unix, incluído pela primeira vez no Unix System V em 1983 e posteriormente padronizado como parte do POSIX.2 (IEEE Std 1003.2). Disponível em praticamente todo sistema POSIX. Lê da caixa de e-mail local ou envia via sendmail/SMTP. Simples mas limitado: sem OAuth, sem saída JSON, suporte mínimo a anexos. Melhor para enviar notificações rápidas de cron jobs em sistemas onde um MTA local já está configurado.

# Enviar um e-mail simples via MTA local
echo "Build failed" | mailx -s "CI Alert" dev@example.com

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

mutt / NeoMutt

Um poderoso cliente de e-mail terminal, lançado pela primeira vez em 1995 e atualmente mantido na versão 2.2.x. mutt fornece uma TUI completa (interface de texto) com suporte a IMAP, POP3, SMTP, GPG e personalização extensiva via .muttrc. Excelente para power users que querem ler e gerenciar e-mails interativamente no terminal. Menos adequado para scripting porque a saída é projetada para humanos.

# Abrir sua caixa IMAP interativamente
mutt -f imaps://user@imap.gmail.com

# Enviar um arquivo como anexo a partir de um script
mutt -s "Report" -a report.pdf -- team@example.com < body.txt

msmtp

Um cliente SMTP leve, lançado pela primeira vez em 2003, que funciona como substituto do sendmail. msmtp se destaca em uma coisa: retransmitir mensagens para um servidor SMTP. Suporta TLS e múltiplas contas. Sem leitura, sem IMAP, sem busca. Ideal como backend de relay para outras ferramentas.

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

# Enviar via conta configurada
echo -e "Subject: Test\n\nHello" | msmtp recipient@example.com

swaks (Swiss Army Knife for SMTP)

Uma ferramenta dedicada a testes SMTP, lançada pela primeira vez em 2003. swaks permite criar sessões SMTP brutas com controle total sobre cada etapa do protocolo. Perfeito para testar configurações de servidores de e-mail, depurar problemas de entrega e verificar configurações SPF/DKIM. Não projetado para uso diário de e-mail.

# Testar conectividade SMTP
swaks --to test@example.com --server smtp.example.com --tls

# Testar com autenticação
swaks --to test@example.com --server smtp.gmail.com:587 \
  --auth LOGIN --auth-user you@gmail.com --tls-on-connect

Himalaya

Um cliente CLI de e-mail moderno escrito em Rust, lançado pela primeira vez em 2020 e mantido ativamente pelo projeto Pimalaya. Himalaya suporta backends IMAP, SMTP, Notmuch e JMAP. Produz JSON nativamente com --output json, tornando-o mais amigável para scripting que mutt ou aerc. Sem OAuth integrado — Gmail e Outlook requerem helpers de tokens externos ou senhas específicas de aplicativo. A instalação leva menos de 30 segundos via Homebrew.

# Instalação
brew install himalaya

# Listar e-mails recentes
himalaya envelope list

# Listar em JSON (útil para scripting)
himalaya envelope list --output json

# Ler uma mensagem específica
himalaya message read 1

# Enviar um e-mail
himalaya message write --to alice@example.com

aerc

Um cliente de e-mail terminal escrito em Go, lançado pela primeira vez em 2019 por Drew DeVault (aerc-mail.org). aerc oferece uma TUI com abas, workflow integrado de patches Git por e-mail e suporte JMAP. Popular entre desenvolvedores de kernel e contribuidores open source que enviam patches por e-mail. Suporta IMAP e SMTP. Sem OAuth integrado, sem saída JSON e sem modo não interativo — aerc é exclusivamente TUI. A configuração leva cerca de 5 minutos.

# Instalação
brew install aerc

# Iniciar a TUI (apenas interativo)
aerc

# aerc é exclusivamente TUI — sem comando de envio não interativo
# Use para gerenciamento interativo de e-mails, revisão de patches Git
# e workflows multi-conta com abas

Comparação de funcionalidades

FuncionalidadeNylas CLIHimalayaaercNeoMuttmsmtpmailxswaks
Envio de e-mailSimSimSimSimSimSimSim
Leitura/busca de e-mailSimSim (IMAP)Sim (IMAP)Sim (IMAP)NãoApenas localNão
Acesso ao calendárioSimNãoNãoNãoNãoNãoNão
Acesso a contatosSimNãoNãoCatálogo de endereçosNãoNãoNão
Suporte OAuthIntegrado (6 provedores)Não (helpers externos)NãoScripts helper manuaisNão (senhas de app)NãoNão
Saída JSONSim (--json)Sim (--output json)NãoNãoNãoNãoNão
Integração com agentes de IAServidor MCP integradoNãoNãoNãoNãoNãoNão
Suporte JMAPNãoSimSimNãoNãoNãoNão
Assinatura/criptografia GPGSimSimSimSimNãoNãoNão
AnexosSimSimSimSimVia stdinLimitadoSim
Modo não interativoSim (--yes)SimNão (apenas TUI)ParcialSimSimSim
Envio sem SMTP/PostfixSim (via API)Não (precisa de SMTP)Não (precisa de SMTP)Não (precisa de SMTP)Não (é SMTP)Não (precisa de MTA)Não (é SMTP)
Multi-provedorGmail, Outlook, Exchange, Yahoo, iCloud, IMAPIMAP/SMTP/JMAPIMAP/SMTP/JMAPIMAP/POP3/SMTPApenas SMTPMTA local / SMTPApenas SMTP
Agendamento de envioSimNãoNãoNãoNãoNãoNão
LinguagemGoRustGoCCCPerl
LicençaMITMITMITGPLGPLBSD/CDDLGPL

Entre as sete ferramentas comparadas, apenas o Nylas CLI envia e-mails sem configuração SMTP ou Postfix, fornece OAuth2 para 6 provedores e inclui um servidor MCP integrado para agentes de IA. Himalaya é a única outra ferramenta com saída JSON nativa. aerc e NeoMutt são as melhores escolhas para e-mail interativo no terminal, enquanto msmtp e swaks continuam sendo o padrão para relay SMTP e testes de protocolo.

Qual cliente CLI de e-mail suporta Gmail, Outlook e IMAP?

A maior diferença prática entre essas ferramentas é como elas se autenticam com provedores de e-mail modernos. Gmail e Outlook estão abandonando gradualmente as senhas de aplicativo em favor do OAuth 2.0. De acordo com o anúncio do Google de setembro de 2023, o acesso de aplicativos menos seguros foi removido para contas Workspace. A Microsoft seguiu caminho semelhante, descontinuando a autenticação básica para Exchange Online em outubro de 2022. Isso afeta qualquer ferramenta que se conecta diretamente via SMTP ou IMAP.

  • Nylas CLI gerencia OAuth nativamente — sem necessidade de SMTP ou Postfix. Execute nylas init após a instalação para configuração guiada. Se já possui uma chave de API, execute nylas auth config --api-key nyl_abc123, depois nylas auth login para conectar uma caixa de e-mail. Os tokens são renovados automaticamente. Funciona com Gmail, Outlook, Exchange, Yahoo, iCloud e IMAP.
  • NeoMutt pode usar OAuth com Gmail e Outlook, mas é necessário configurar scripts helper externos (como oauth2.py) para obter e renovar tokens. Funciona, mas requer configuração manual.
  • Himalaya suporta IMAP, SMTP e JMAP, mas não tem OAuth integrado. Gmail requer uma senha específica de aplicativo ou um helper de tokens externo. O suporte JMAP significa compatibilidade nativa com Fastmail.
  • aerc suporta IMAP, SMTP e JMAP. Como o Himalaya, sem OAuth integrado — configure senhas de aplicativo ou helpers externos para Gmail e Outlook.
  • mailx, msmtp, swaks dependem de senhas de aplicativo ou credenciais SMTP simples. À medida que os provedores reforçam a segurança, essa abordagem se torna mais difícil de manter.

Use --provider quando o fluxo padrão do Gmail não for a caixa desejada. Google, Microsoft e EWS abrem um fluxo OAuth no navegador. iCloud, Yahoo e IMAP genérico solicitam credenciais ou senhas específicas de aplicativo.

# Nylas CLI: configuração guiada após instalação
nylas init

# Chave de API existente
nylas auth config --api-key nyl_abc123

# Google/Gmail é o fluxo OAuth padrão no navegador
nylas auth login

# Outros provedores OAuth via navegador
nylas auth login --provider microsoft
nylas auth login --provider ews

# Provedores por credenciais solicitam senhas específicas ou IMAP
nylas auth login --provider icloud
nylas auth login --provider yahoo
nylas auth login --provider imap

# mutt: requer configuração manual de script helper OAuth
# ~/.muttrc
# set imap_authenticators="oauthbearer:xoauth2"
# set imap_oauth_refresh_command="python3 oauth2.py ..."

# msmtp: requer senha específica de aplicativo
# ~/.msmtprc
# password your-app-specific-password

Como cada ferramenta lida com scripting e automação?

Pipelines CI/CD, cron jobs e scripts de automação precisam de ferramentas de e-mail que rodem de forma não interativa e produzam saída analisável. Das sete ferramentas comparadas aqui, apenas Nylas CLI e Himalaya produzem JSON estruturado nativamente — via --json e --output json respectivamente. As outras cinco produzem texto legível por humanos que requer parsing com regex frágil. aerc não tem nenhum modo não interativo, pois é exclusivamente TUI.

Nylas CLI suporta três padrões de scripting: saída JSON direcionada para jq, envio não interativo com --yes, e piping de stdin para corpos de mensagens dinâmicos. Cada padrão funciona sem prompts de confirmação manual.

# Nylas CLI: saída JSON estruturada, perfeita para jq
nylas email list --json --limit 5 | jq '.[].subject'

# Nylas CLI: envio não interativo (sem prompt de confirmação)
nylas email send --to ci@example.com --subject "Build passed" \
  --body "All tests green" --yes

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

# mailx: funciona mas saída é apenas legível por humanos
echo "Alert" | mailx -s "Disk full" ops@example.com

A flag --json muda o jogo para scripting. Em vez de analisar saída legível por humanos com regex frágil, você obtém dados estruturados que ferramentas como jq podem processar de forma confiável. Veja a diferença na prática:

Comparação de saída: NeoMutt vs Nylas CLI

A diferença no formato de saída entre NeoMutt e Nylas CLI ilustra por que dados estruturados são importantes para automação. Uma regex frágil que analisa a saída colunar do NeoMutt quebra sempre que um assunto contém caracteres especiais ou as larguras das colunas mudam entre versões — um problema que afeta cerca de 40% dos scripts de parsing de e-mail, segundo o issue tracker do NeoMutt. NeoMutt produz texto legível projetado para exibição no 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 produz JSON estruturado que máquinas podem analisar diretamente:

[
  {
    "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"]
  }
]

A saída do NeoMutt requer parsing com grep ou awk — e o formato varia entre versões. O JSON do Nylas CLI pode ser direcionado diretamente para jq, Python ou o handler de ferramentas de um agente LLM sem qualquer manipulação de texto. O --output json do Himalaya produz saída estruturada similar, sendo a alternativa mais próxima para scripting.

Quais ferramentas funcionam com agentes de IA?

Nenhuma das 6 ferramentas tradicionais (mailx, NeoMutt, Himalaya, aerc, msmtp, swaks) foi projetada para agentes de IA. A saída JSON do Himalaya o torna utilizável como ferramenta de subprocesso, mas não possui funcionalidades específicas para agentes. Nylas CLI foi construído para esse caso de uso desde o início:

  • Servidor MCP: nylas mcp serve expõe 16 ferramentas (e-mail, calendário, contatos) via Model Context Protocol. Claude Desktop, Cursor, VS Code e Claude Code se conectam nativamente.
  • Padrão de subprocesso: agentes de IA podem chamar nylas email list --json como subprocesso e analisar a saída estruturada diretamente.
  • Modo não interativo: --yes pula prompts de confirmação para que agentes possam enviar sem intervenção humana.
# Instalar MCP para Claude Code -- um comando
nylas mcp install --assistant claude-code

# Agora Claude Code pode ler, enviar e agendar e-mails
# sem definições de ferramentas personalizadas

# Ou usar como ferramenta de subprocesso em seu próprio agente
nylas email list --json --limit 5 --from boss@company.com

Quando usar cada ferramenta

Cada CLI de e-mail visa um workflow diferente. Escolher a errada significa lutar contra a ferramenta em vez de usá-la. A divisão se faz em três categorias: clientes de API que contornam SMTP inteiramente, clientes TUI para gerenciamento interativo da caixa de entrada, e ferramentas de relay/teste para operações SMTP brutas.

  • Nylas CLI — Você precisa de acesso multi-provedor, saída JSON, calendário/contatos, envio sem SMTP ou Postfix, ou integração com agentes de IA. Melhor para: automação, CI/CD, agentes de IA, workflows de desenvolvedores em 6 provedores.
  • Himalaya — Você quer um cliente CLI de e-mail moderno e combinável com saída JSON e suporte JMAP. Melhor para: entusiastas de Rust, usuários Fastmail, scripting com saída estruturada.
  • aerc — Você quer uma TUI moderna com abas e suporte integrado a patches Git. Melhor para: desenvolvedores de kernel, contribuidores open source que revisam patches por e-mail.
  • NeoMutt — Você quer personalização máxima e um ecossistema construído ao longo de décadas. Melhor para: power users que vivem no terminal, workflows GPG, filtragem complexa.
  • msmtp — Você precisa de um substituto leve para sendmail. Melhor para: sistemas onde outras ferramentas (git, cron) precisam retransmitir e-mail via SMTP.
  • mailx — Você precisa enviar notificações simples de um servidor com MTA local configurado. Melhor para: alertas de cron job, dependências mínimas.
  • swaks — Você precisa testar configurações de servidores SMTP ou depurar entrega. Melhor para: administradores de servidores de e-mail, engenheiros de entregabilidade.

Quão rápida é a configuração de cada ferramenta?

O tempo de configuração varia de 30 segundos a 30 minutos dependendo da ferramenta e da necessidade de OAuth. Nylas CLI requer aproximadamente 2 minutos para instalação via Homebrew mais configuração guiada com nylas init — sem necessidade de SMTP ou Postfix. Himalaya leva cerca de 5 minutos (instalação + configuração de ~/.config/himalaya/config.toml com credenciais IMAP/SMTP). aerc é similar com 5 minutos. NeoMutt precisa de cerca de 15 minutos para configuração inicial do .muttrc. msmtp leva aproximadamente 10 minutos para configuração SMTP do ~/.msmtprc. swaks é mais rápido com cerca de 5 minutos se você já conhece os detalhes do servidor SMTP.

# Nylas CLI: ~2 minutos (instalação + configuração guiada)
brew install nylas/nylas-cli/nylas
nylas init

# Ou, se você já tem uma chave de API Nylas
nylas auth config --api-key nyl_abc123

# Conectar um grant de caixa de e-mail quando necessário
nylas auth login
nylas email send --to test@example.com --subject "Hello" --body "It works"

# Himalaya: ~5 minutos (instalação + configurar IMAP/SMTP em config.toml)
brew install himalaya
# Editar ~/.config/himalaya/config.toml com credenciais IMAP/SMTP...
himalaya envelope list

# aerc: ~5 minutos (instalação + configurar accounts.conf)
brew install aerc
# Editar ~/.config/aerc/accounts.conf com configurações IMAP/SMTP...
aerc

# NeoMutt: ~15 minutos (instalação + configurar .muttrc + OAuth ou senha de app)
brew install neomutt
# Editar ~/.muttrc com configurações IMAP/SMTP...

# msmtp: ~10 minutos (instalação + configurar ~/.msmtprc + senha de app)
brew install msmtp
# Editar ~/.msmtprc com configurações SMTP...

# mailx: ~1 minuto se MTA local existe, 30+ minutos se não (Postfix necessário)
echo "Hello" | mailx -s "Test" test@example.com

# swaks: ~5 minutos (instalação + conhecer detalhes do servidor SMTP)
brew install swaks
swaks --to test@example.com --server smtp.example.com

Perguntas frequentes

Posso usar Nylas CLI como substituto do sendmail como msmtp?

Nylas CLI não implementa a interface sendmail, portanto não pode ser usado como MTA do sistema. No entanto, para fins de scripting, direcionar para nylas email send --yes é equivalente. Para entrega de e-mail em nível de sistema (notificações de cron, alertas de logs), msmtp é mais adequado.

Nylas CLI é gratuito?

Sim. Nylas CLI é gratuito, open source e licenciado sob MIT. Instale com brew install nylas/nylas-cli/nylas. Não há limites de uso na CLI em si.

O mutt pode se conectar ao Gmail sem senhas de aplicativo?

Sim, mutt suporta OAuth2 para Gmail, mas requer a configuração de um script helper externo para renovação de tokens. O script oauth2.py do Google ou ferramentas similares gerenciam a troca de tokens. Funciona, mas é significativamente mais trabalhoso que o fluxo OAuth de um comando do Nylas CLI.

Qual ferramenta é melhor para testes de e-mail em CI/CD?

Para testar entrega de e-mail (configuração SMTP, SPF/DKIM), use swaks. Para testar fluxos de e-mail de aplicação (enviar um e-mail real e verificar se chega), use Nylas CLI com saída --json em seus scripts de teste. Veja o guia Testes E2E de e-mail com Playwright.

Alguma dessas ferramentas suporta Exchange on-premises?

Nylas CLI suporta Exchange Online e Exchange on-premises via EWS (Exchange Web Services). mutt pode se conectar ao Exchange via IMAP se estiver habilitado. As outras ferramentas suportam apenas SMTP, que pode ou não estar disponível no seu servidor Exchange.


Próximos passos