Guide
CLI IMAP: ler e-mails de qualquer servidor
Use um CLI IMAP para listar, buscar e ler e-mails de Fastmail, Zoho, ProtonMail Bridge, Dovecot e outros servidores IMAP pelo terminal. IMAP é o protocolo por trás de todos os provedores de e-mail que não são Gmail, Outlook ou Exchange.
Written by Qasim Muhammad Staff SRE
Reviewed by Hazik
Como usar um CLI IMAP pelo terminal?
Conecte a conta IMAP uma vez, depois use nylas email list, nylas email search e nylas email read. Isso dá a caixas Fastmail, Zoho, ProtonMail Bridge, Dovecot e de provedores de internet o mesmo workflow de terminal que provedores com OAuth.
Como ferramenta de linha de comando IMAP, o CLI é útil quando você precisa testar o acesso IMAP via terminal uma vez e depois continuar usando comandos de e-mail normalizados em vez de manter configurações separadas de mutt, fetchmail ou imaplib.
IMAP ainda é a espinha dorsal do e-mail fora dos maiores provedores hospedados.
IMAP (RFC 3501, publicado em 2003) é o protocolo que sustenta o acesso a e-mail de provedores fora dos três grandes (Google, Microsoft, Apple). Enquanto Gmail e Outlook dominam o e-mail pessoal, uma parcela significativa do e-mail corporativo e institucional ainda roda em servidores exclusivamente IMAP.
Administradores de e-mail auto-hospedado, usuários de contas de provedor de internet, estudantes universitários e usuários de provedores focados em privacidade como Fastmail ou Posteo dependem de IMAP. O protocolo funciona, mas configurar clientes IMAP pela linha de comando é trabalhoso.
O problema da configuração IMAP
Cada servidor IMAP tem seu próprio hostname, porta, modo TLS e método de autenticação. Para conectar com mutt, fetchmail ou imaplib do Python, você precisa saber os quatro. Erre um e ficará olhando para um timeout de conexão por 30 segundos antes de ver um erro enigmático.
Veja como é uma configuração típica de .muttrc para um único provedor:
# .muttrc para Fastmail — 8 linhas de config para uma conta
set imap_user = "you@fastmail.com"
set imap_pass = "app-specific-password-here"
set folder = "imaps://imap.fastmail.com:993/"
set spoolfile = "+INBOX"
set record = "+Sent"
set postponed = "+Drafts"
set ssl_starttls = yes
set ssl_force_tls = yesMultiplique isso por cada conta IMAP que você tem. Agora adicione um servidor auto-hospedado com certificado autoassinado, uma conta de provedor com porta diferente e uma conta universitária que só suporta STARTTLS na porta 143. São três blocos de configuração separados com configurações TLS diferentes, e qualquer troca de senha quebra a conexão silenciosamente.
1. Instale o Nylas CLI
O Nylas CLI se instala como um binário único sem dependências de runtime. No macOS e Linux, Homebrew é o método mais rápido — a instalação completa em menos de 30 segundos e inclui verificação automática de checksum SHA-256. O binário pesa aproximadamente 25 MB e suporta arquiteturas x86_64 e ARM64.
brew install nylas/nylas-cli/nylasPara outras plataformas, o guia de primeiros passos cobre os métodos de instalação via shell script, PowerShell e Go.
2. Conecte sua conta IMAP
Conectar uma conta IMAP ao Nylas CLI requer uma configuração única pelo dashboard Nylas. O dashboard detecta automaticamente as configurações de servidor para mais de 50 provedores IMAP conhecidos, incluindo Fastmail, Zoho e Posteo. Para servidores auto-hospedados, você insere o hostname e a porta manualmente. Todo o processo leva cerca de 2 minutos.
Acesse dashboard-v3.nylas.com, crie uma aplicação e conecte sua conta IMAP. Depois configure o CLI com sua chave de API:
nylas auth config
# Cole sua chave de API quando solicitado
# Verifique a conexão
nylas auth whoami
# => Authenticated as you@fastmail.com (IMAP)3. Liste seus e-mails
O comando nylas email list recupera mensagens de qualquer servidor IMAP conectado usando a mesma sintaxe que contas Gmail, Outlook ou Exchange. Por padrão, o comando retorna as 10 mensagens mais recentes ordenadas por data. Você pode filtrar por status de leitura ou ajustar a quantidade de resultados com flags.
O comando FETCH do RFC 3501 do IMAP normalmente requer a especificação de números de sequência de mensagem e itens de dados. O CLI abstrai isso em um único comando que funciona em todos os provedores.
# Listar mensagens recentes
nylas email list
# Mostrar apenas mensagens não lidas
nylas email list --unread
# Limitar a 25 resultados
nylas email list --limit 25Servidores de e-mail auto-hospedados (Dovecot, Postfix, Zimbra)
Servidores de e-mail auto-hospedados funcionam com o Nylas CLI pelo mesmo fluxo de conexão IMAP de qualquer provedor comercial. Sozinho, o Dovecot alimenta cerca de 73% de todos os servidores IMAP no mundo, segundo dados de uso do próprio projeto Dovecot. Seja rodando Dovecot para IMAP, Postfix para SMTP, ou uma solução completa como Mail-in-a-Box ou Zimbra, a configuração no dashboard pede apenas hostname e porta.
A plataforma Nylas gerencia a negociação TLS, pool de conexões e keepalives IMAP IDLE para servidores auto-hospedados. Configurações comuns de servidores auto-hospedados e os valores a inserir no dashboard Nylas:
| Stack do Servidor | Hostname IMAP | Porta | TLS |
|---|---|---|---|
| Dovecot (padrão) | mail.yourdomain.com | 993 | Implicit TLS |
| Mail-in-a-Box | box.yourdomain.com | 993 | Implicit TLS |
| Zimbra | mail.yourdomain.com | 993 | Implicit TLS |
| Courier IMAP | mail.yourdomain.com | 993 or 143 | Implicit TLS or STARTTLS |
| Cyrus IMAP | mail.yourdomain.com | 993 | Implicit TLS |
| hMailServer (Windows) | mail.yourdomain.com | 993 | Implicit TLS |
Após conectar um servidor auto-hospedado pelo dashboard Nylas, os comandos do CLI são idênticos aos de qualquer outro provedor. Não há nada específico de IMAP no uso do CLI — os mesmos comandos nylas email list e nylas email search funcionam independentemente de o servidor rodar Dovecot, Zimbra ou Cyrus.
# Servidor Dovecot auto-hospedado — mesmos comandos que Gmail ou Outlook
nylas email list --limit 10
nylas email search "from:client@example.com"
nylas email list --folder "Sent" --limit 5Contas de e-mail de provedores de internet e telecoms
Contas de e-mail de provedores como Comcast, AT&T e Deutsche Telekom conectam pelo Nylas CLI usando credenciais IMAP padrão. Estima-se que 30-40 milhões de americanos ainda usam endereços de e-mail fornecidos pelo provedor de internet, segundo dados do Consumer Reports de 2023. Essas contas oferecem apenas acesso IMAP — sem OAuth2, sem REST API, apenas usuário e senha.
Domínios comuns de provedores incluem Comcast/Xfinity (@comcast.net), AT&T (@att.net, @sbcglobal.net), Deutsche Telekom (@t-online.de) e BT (@btinternet.com). Contas de e-mail de provedores são notoriamente frágeis com clientes IMAP tradicionais porque os provedores frequentemente mudam as configurações do servidor. A AT&T, por exemplo, migrou de imap.mail.att.net para a infraestrutura do Yahoo em 2017, quebrando todos os clientes configurados manualmente.
Estes são os hostnames de servidores IMAP dos principais provedores de internet. Insira os valores durante a configuração no dashboard Nylas se a detecção automática não encontrar o provedor.
# Servidores IMAP comuns de provedores (referência para configuração no dashboard Nylas)
# Comcast/Xfinity: imap.comcast.net:993
# AT&T: imap.mail.att.net:993
# Verizon: incoming.verizon.net:993
# Deutsche Telekom: secureimap.t-online.de:993
# BT Internet: imap4.btconnect.com:993
# Após conectar pelo dashboard, os mesmos comandos funcionam:
nylas email list --limit 10E-mail universitário e institucional
Sistemas de e-mail universitário e institucional frequentemente rodam servidores IMAP independentes que o Nylas CLI pode conectar pelo fluxo padrão de concessão IMAP. Segundo uma pesquisa EDUCAUSE de 2023, aproximadamente 40% das instituições de ensino superior na Europa ainda operam sua própria infraestrutura de e-mail em vez de terceirizar para Google Workspace ou Microsoft 365. MIT, Caltech e a maioria das universidades de pesquisa europeias se enquadram nessa categoria.
Essas contas frequentemente têm requisitos específicos que diferem dos provedores IMAP comerciais:
- VPN pode ser necessária para acesso IMAP fora do campus
- STARTTLS na porta 143 em vez de implicit TLS na porta 993
- Autenticação Kerberos ou LDAP em vez de senhas simples
- Timeouts de conexão agressivos (frequentemente 5 minutos vs o padrão IMAP de 30 minutos)
O Nylas CLI gerencia os detalhes de conexão — negociação TLS, keepalives IDLE e reconexão após timeout — depois que você fornece as informações do servidor durante a configuração no dashboard.
TLS, portas e a confusão do STARTTLS
IMAP usa dois números de porta — 993 para implicit TLS e 143 para STARTTLS ou texto plano — e escolher a errada causa falhas silenciosas de conexão. O RFC 8314, publicado em 2018, recomenda implicit TLS na porta 993 como padrão para todas as novas implantações. Apesar disso, uma pesquisa de 2022 do IETF constatou que mais de 35% dos servidores IMAP ativos ainda aceitam conexões STARTTLS na porta 143.
| Porta | Método | Como funciona | Status |
|---|---|---|---|
| 993 | Implicit TLS | O handshake TLS acontece primeiro, depois IMAP | Recomendado (RFC 8314) |
| 143 | STARTTLS | IMAP conecta em texto plano, depois atualiza para TLS | Legado (ainda comum) |
| 143 | Nenhum | IMAP em texto plano (sem criptografia) | Descontinuado — evitar |
A abordagem STARTTLS tem uma vulnerabilidade conhecida: um atacante man-in-the-middle pode remover o comando STARTTLS antes que o cliente o veja, forçando uma conexão em texto plano. É por isso que o RFC 8314 recomenda implicit TLS. A plataforma Nylas sempre usa TLS para conexões IMAP.
IMAP vs POP3: por que IMAP importa
IMAP mantém as mensagens no servidor e sincroniza o estado entre dispositivos, enquanto POP3 baixa as mensagens e opcionalmente as exclui do servidor. O RFC 3501 (IMAP) foi publicado em 2003 como substituto do RFC 1939 (POP3, publicado em 1996). Algumas contas mais antigas de provedores ainda oferecem ambos os protocolos, mas IMAP é o único que suporta busca no servidor, navegação por pastas e download parcial de mensagens.
| Funcionalidade | IMAP (RFC 3501) | POP3 (RFC 1939) |
|---|---|---|
| Armazenamento de mensagens | No servidor (sincronizado) | Baixadas para o cliente (excluídas do servidor por padrão) |
| Múltiplos dispositivos | Sim — todos os clientes veem o mesmo estado | Não — cada cliente baixa independentemente |
| Suporte a pastas | Sim (INBOX, Sent, pastas personalizadas) | Não (apenas inbox) |
| Busca | Comando SEARCH no servidor | Não suportada — precisa baixar primeiro |
| Download parcial | Sim (buscar apenas cabeçalhos, buscar partes do corpo) | Não (baixar mensagem inteira) |
| Largura de banda | Menor (sincroniza apenas alterações) | Maior (baixa tudo novamente) |
| Acesso offline | Cache local pelo cliente | Cópia local completa |
Se seu provedor oferece ambos, sempre escolha IMAP. O Nylas CLI não suporta POP3 porque IMAP oferece uma interface estritamente superior para operações CLI — busca no servidor, navegação por pastas e download parcial de mensagens requerem IMAP.
Agregando múltiplas contas IMAP
O Nylas CLI pode agregar múltiplas contas IMAP em uma única interface de linha de comando usando a flag --grant. Cada conta IMAP conectada — seja Fastmail, Dovecot auto-hospedado ou um endereço de provedor — se torna uma concessão separada que você alterna com uma flag. Clientes IMAP tradicionais como mutt exigem um bloco de configuração separado por conta, o que significa manter 3-4 arquivos de credenciais para 3-4 contas.
O exemplo a seguir mostra como consultar três contas IMAP separadas e contar mensagens não lidas em todas elas em um único loop de shell.
# Alternar entre contas usando a flag --grant
nylas email list --grant "you@fastmail.com" --limit 5
nylas email list --grant "you@selfhosted.org" --limit 5
nylas email list --grant "you@comcast.net" --limit 5
# Buscar em uma conta específica
nylas email search "invoice" --grant "you@fastmail.com"
# Contar não lidas em todas as contas em um script
for grant in "you@fastmail.com" "you@selfhosted.org" "you@comcast.net"; do
count=$(nylas email list --unread --json --grant "$grant" | jq length)
echo "$grant: $count unread"
doneNomes de pastas IMAP não são padronizados
Nomes de pastas IMAP variam entre servidores porque o RFC 3501 define apenas uma pasta obrigatória: INBOX. Todo outro nome de pasta — Sent, Drafts, Trash, Junk — é uma convenção, não um padrão. Courier IMAP usa nomes separados por ponto como INBOX.Sent, Dovecot usa simplesmente Sent, e Zimbra usa Sent com um namespace interno diferente. O RFC 6154 (2011) introduziu a extensão SPECIAL-USE para marcar pastas por função, mas a adoção permanece desigual — cerca de 60% dos servidores IMAP a suportam.
O comando nylas folder list mostra todas as pastas no servidor IMAP conectado. O Nylas CLI normaliza nomes comuns de pastas para que você possa usar Sent independentemente da convenção de nomenclatura interna do servidor.
# Listar todas as pastas no seu servidor IMAP
nylas folder list
# Diferenças de nomes de pastas entre provedores:
# Fastmail: "Sent", "Trash", "Junk Mail", "Archive"
# Dovecot: "Sent" or "INBOX.Sent" (namespace prefix varies)
# Zimbra: "Sent", "Trash", "Junk"
# Zoho: "Sent", "Trash", "Spam"
# Courier: "INBOX.Sent", "INBOX.Trash" (dot-separated hierarchy)
# O Nylas CLI normaliza nomes comuns de pastas
nylas email list --folder "Sent"
nylas email list --folder "Drafts"
nylas email list --folder "Trash"O prefixo INBOX. é uma convenção do Courier IMAP do início dos anos 2000. Se você o vê na saída do nylas folder list, seu servidor usa o namespace antigo. O CLI gerencia ambos os formatos.
Saída JSON para automação IMAP
O Nylas CLI converte respostas brutas do protocolo IMAP em JSON estruturado usando a flag --json. O IMAP nativo usa um formato baseado em texto definido no RFC 3501 com estruturas parentetizadas semelhantes a S-expressions — não é algo que você consiga enviar para jq sem um parser customizado. A flag --json gera cada mensagem como um objeto JSON com campos como subject, from, date e body, pronto para scripts ou consumo por agentes de IA.
Três padrões comuns de automação demonstram o valor da saída JSON: um resumo diário da caixa de entrada, uma exportação completa em JSON e uma análise de frequência de remetentes. Cada um usa jq para processar a saída JSON do CLI.
# Resumo diário da caixa de entrada do seu servidor auto-hospedado
nylas email list --unread --json --limit 50 | \
jq -r '.[] | "\(.date | split("T")[0]) | \(.from[0].name // .from[0].email) | \(.subject)"' | \
column -t -s '|'
# Exportar as últimas 100 mensagens como arquivo JSON para análise
nylas email list --limit 100 --json > inbox-export.json
# Encontrar os remetentes mais frequentes
nylas email list --limit 200 --json | \
jq -r '[.[] | .from[0].email] | group_by(.) |
map({sender: .[0], count: length}) |
sort_by(-.count) | .[:10] |
.[] | "\(.count) \(.sender)"'Referência de provedores IMAP
Esta referência cobre hostnames de servidores IMAP, portas e métodos de autenticação para 9 provedores IMAP populares. O dashboard Nylas detecta automaticamente as configurações da maioria desses provedores, mas você pode inseri-las manualmente se a detecção automática falhar. Todos os provedores listados usam a porta 993 com implicit TLS exceto ProtonMail Bridge, que roda localmente na porta 1143.
| Provedor | Servidor IMAP | Porta | Método de autenticação |
|---|---|---|---|
| Fastmail | imap.fastmail.com | 993 | App password ou OAuth2 |
| Zoho Mail | imap.zoho.com | 993 | Senha específica de app |
| ProtonMail Bridge | 127.0.0.1 | 1143 | Senha gerada pelo Bridge |
| Posteo | posteo.de | 993 | Senha da conta |
| GMX | imap.gmx.com | 993 | Senha da conta |
| mail.com | imap.mail.com | 993 | Senha da conta |
| Comcast/Xfinity | imap.comcast.net | 993 | Senha da conta |
| AT&T | imap.mail.att.net | 993 | Senha da conta |
| Dovecot (auto-hospedado) | Hostname do seu servidor | 993 | Sua configuração de auth |
Próximos passos
Após listar e-mails IMAP, o Nylas CLI suporta envio, busca e gerenciamento de calendários e contatos em todos os provedores conectados. Estes guias cobrem workflows relacionados para IMAP e outros provedores de e-mail.
- Enviar e-mail pelo terminal — componha e envie de qualquer conta IMAP
- Listar e-mails do Gmail — Gmail usa sua própria API, mas os comandos do CLI são idênticos
- Listar e-mails do Outlook — mesmo workflow para Microsoft 365
- Yahoo Mail CLI: ler e-mails pelo terminal — Yahoo suporta OAuth2 e IMAP
- iCloud Mail CLI: ler e-mails pelo terminal — IMAP da Apple com etapas extras de autenticação
- Alternativas ao Gmailify e POP3 — compare IMAP, redirecionamento e acesso CLI após mudanças no POP do Gmail
- Alternativa à API do iCloud Mail — escolha entre configurações IMAP da Apple e um workflow CLI compartilhado
- Listar e-mails do Exchange — para Exchange Online e on-premises
- Dar acesso a e-mail para agentes de IA via MCP
- Referência completa de comandos
- RFC 9051 -- IMAP4rev2 — a especificação IMAP atual, incluindo SEARCH, FETCH e negociação de capabilities
- RFC 8314 -- Cleartext Considered Obsolete — exige implicit TLS para submission e IMAPS / POP3S