Guide

Outlook CLI: listar e-mails no terminal (sem Graph API)

Use um CLI Outlook para ler, buscar e filtrar e-mails Microsoft 365 pelo terminal. O caminho direto pela Graph API requer registro de app Azure AD, tokens MSAL, permissões e lógica de retry. Nylas CLI gerencia esse setup com um comando e usa o mesmo workflow para Gmail, Exchange, Yahoo, iCloud e IMAP.

Written by Nick Barraclough Product Manager

Reviewed by Qasim Muhammad

VerifiedCLI 3.1.1 · Outlook.com, Microsoft 365 · last tested April 11, 2026

Como usar um CLI Outlook para ler e-mails pelo terminal?

Use nylas email list, nylas email search e nylas email read após conectar sua caixa Outlook ou Microsoft 365. O CLI oferece um workflow Outlook no terminal sem registrar um app Azure AD ou escrever código Microsoft Graph API.

Para um workflow Outlook por linha de comando, isso significa um único conjunto de comandos para listar, buscar e ler e-mails em contas Outlook.com e Microsoft 365.

O Microsoft 365 tem mais de 400 milhões de licenças pagas, segundo o relatório financeiro FY2024 da Microsoft. É a plataforma de e-mail corporativo mais implantada do mundo. Ainda assim, ler sua própria caixa de entrada pela linha de comando requer uma quantidade surpreendente de configuração.

A Graph API é o único caminho suportado desde que a Microsoft descontinuou Basic Auth para Exchange Online em outubro de 2022. Para uma única chamada GET /me/messages, você precisa registrar um app no Azure AD, configurar permissões Mail.Read, implementar aquisição de tokens MSAL com tratamento de refresh e parsear o formato JSON proprietário da Microsoft (não MIME padrão). Segundo as diretrizes de throttling da Graph API da Microsoft, cada caixa é limitada a 10.000 requisições por 10 minutos — então você também precisa de lógica de retry para respostas 429.

EWS (Exchange Web Services) ainda existe, mas a Microsoft anunciou sua descontinuação para Exchange Online em outubro de 2026 (anúncio MC862873). O CLI az não tem comandos de e-mail. O Get-MailboxFolderPermission do PowerShell requer módulos de gerenciamento Exchange Online e acesso de administrador. Nenhum deles fornece um workflow limpo e portável.

1. Instalação e autenticação

Instalar o Nylas CLI e conectar uma conta Outlook leva menos de 2 minutos. O CLI se autentica via chave de API, então você não precisa registrar um app Azure AD, configurar MSAL ou gerenciar refresh de tokens. Um comando brew install e a inserção da chave de API levam você do zero à listagem de e-mails.

Homebrew é o caminho mais rápido no macOS e Linux. A fórmula baixa o binário da versão mais recente e verifica seu checksum SHA-256 automaticamente.

# Instalação via Homebrew (macOS / Linux)
brew install nylas/nylas-cli/nylas

Outros métodos de instalação (shell script, PowerShell, Go) estão no guia de primeiros passos.

Após instalar, acesse dashboard-v3.nylas.com, crie uma aplicação e conecte sua conta Microsoft 365 ou Outlook.com. O dashboard gerencia o consentimento OAuth2 e o armazenamento de tokens. Depois configure o CLI com sua chave de API:

nylas auth config
# Cole sua chave de API quando solicitado

nylas auth whoami
# => Authenticated as you@company.com (Microsoft)

2. Listar, buscar e ler e-mails

O Nylas CLI expõe três subcomandos de e-mail — list, search e read — que cobrem a mesma superfície de 8 endpoints diferentes da Graph API. Cada comando retorna resultados em menos de 1 segundo para caixas típicas. O comando list mostra mensagens recentes por padrão, enquanto search aceita filtros por palavra-chave, remetente e intervalo de datas que mapeiam para o índice de busca do lado do servidor do Outlook.

Os exemplos a seguir mostram padrões comuns para listar, filtrar e ler e-mails Outlook. A flag --limit controla quantos resultados retornam, e --unread restringe a saída a mensagens não lidas.

# E-mails recentes
nylas email list
nylas email list --limit 10
nylas email list --unread

# Buscar por palavra-chave, remetente ou intervalo de datas
nylas email search "quarterly report" --limit 5
nylas email search "from:manager@company.com"
nylas email search "after:2026-01-01 before:2026-02-01"

# Ler uma mensagem específica (IDs mostrados na saída do list)
nylas email read msg_abc123
nylas email read msg_abc123 --mime

3. Saída JSON para scripting

Cada comando de e-mail do Nylas CLI aceita uma flag --json que produz JSON normalizado em vez da visualização em tabela padrão. Este formato JSON é consistente entre todos os 6 provedores suportados — Gmail, Outlook, Exchange, Yahoo, iCloud e IMAP — então scripts escritos para um provedor funcionam sem alteração em outro. A saída é direcionada diretamente para jq, scripts shell ou fluxos de ferramentas de agentes de IA.

Os exemplos abaixo mostram três padrões de scripting comuns: contar mensagens não lidas, extrair linhas de assunto e filtrar notificações automatizadas do Microsoft Teams e SharePoint. Contas Microsoft 365 tipicamente recebem 15-30 e-mails de notificação automatizados por dia apenas do Teams, tornando o filtro programático útil para análise de caixa de entrada.

# Contar e-mails não lidos
nylas email list --unread --json | jq length

# Extrair assuntos
nylas email list --limit 5 --json | jq '.[].subject'

# Filtrar notificações Teams/SharePoint
nylas email list --json \
  | jq '[.[] | select(.from[0].email | test("teams|sharepoint"; "i"))]' \
  | jq length

4. Caixa de Entrada Prioritária vs Outros

A Caixa de Entrada Prioritária do Outlook usa machine learning para separar mensagens importantes das de baixa prioridade, e a Microsoft reporta que reduz o tempo de triagem de e-mails em até 50% para usuários ativos. A Graph API expõe essa classificação pela propriedade inferenceClassification, mas acessá-la requer um parâmetro $filter separado e não mapeia para uma pasta padrão. O Nylas CLI expõe a estrutura de pastas do Outlook diretamente, permitindo listar mensagens de qualquer pasta incluindo Prioritária, Caixa de Entrada, Itens Enviados e Lixo Eletrônico.

O comando nylas email folders list mostra cada pasta na caixa, incluindo pastas de sistema que o Outlook cria automaticamente. A flag --folder em nylas email list filtra os resultados para uma única pasta por nome.

# Listar todas as pastas — Caixa Prioritária aparece como atributo
nylas email folders list

# Listar e-mails em pastas específicas do Outlook
nylas email list --folder "Inbox"
nylas email list --folder "Sent Items"
nylas email list --folder "Archive"
nylas email list --folder "Junk Email"
nylas email list --folder "Drafts"

5. Caixas compartilhadas e acesso delegado

Caixas compartilhadas são um padrão comum em organizações Microsoft 365 — a documentação da Microsoft estima que o tenant empresarial médio tem 5-10 caixas compartilhadas para aliases de equipe como support@ ou billing@. Acessar uma caixa compartilhada pela Graph API requer GET /users/{id}/messages com permissões Mail.Read.Shared e consentimento de admin do tenant. O Nylas CLI simplifica isso tratando cada caixa compartilhada como um grant separado, permitindo alternar entre caixas pessoais e compartilhadas com os mesmos comandos.

Conecte a caixa compartilhada como um grant separado no dashboard Nylas. Use nylas auth list para ver todas as caixas conectadas e passe o ID do grant para qualquer comando de e-mail. Acesso delegado funciona da mesma forma.

# Listar grants para ver todas as caixas conectadas
nylas auth list

# Trabalhar com caixa compartilhada (conectada como grant separado)
nylas email list <shared-mailbox-grant-id>

6. Categorias e flags do Outlook

O Outlook suporta até 25 categorias com código de cores e flags de acompanhamento por mensagem — funcionalidades sem equivalente no Gmail ou Yahoo Mail. Categorias são uma das funcionalidades organizacionais mais usadas em implantações Outlook empresariais, segundo a pesquisa de produtividade da Microsoft. A Graph API retorna categorias como array de strings em cada objeto de mensagem, mas filtrar por categoria requer construir uma expressão OData $filter. O Nylas CLI expõe filtro por categoria através de sua sintaxe de busca.

O comando de busca aceita nomes de categorias diretamente. Você também pode combinar filtros de categoria com consultas por remetente e palavra-chave, ou direcionar a saída JSON para jq para relatórios personalizados baseados em categorias.

# Buscar e-mails com uma categoria específica
nylas email search "category:Red"

# Combinar categoria com outros filtros
nylas email search "category:Blue from:cfo@company.com" --limit 10

# Exportar e-mails categorizados como JSON para relatórios
nylas email list --json | jq '[.[] | select(.categories[]? == "Project Alpha")]'

7. Microsoft Graph API vs Nylas CLI

A Microsoft Graph API requer no mínimo 40 linhas de código e 4 etapas separadas de configuração para listar e-mails de uma caixa Outlook. O Nylas CLI reduz isso a um único comando com zero código de aplicação. A tabela a seguir compara cada etapa lado a lado, com detalhes da Graph API extraídos da documentação Microsoft Learn para o endpoint /me/messages.

EtapaMicrosoft Graph APINylas CLI
Registrar appRegistro de app Azure AD (portal.azure.com)Não necessário
PermissõesEscopo Mail.Read + consentimento admin para contas orgGerenciado pelo dashboard Nylas
Fluxo de authBiblioteca MSAL, aquisição de tokens, tratamento de refreshnylas auth config
CódigoChamadas REST ou MS Graph SDK — 40+ linhas mínimoZero código
Listar e-mailsGET /me/messages com Bearer tokennylas email list
Formato de respostaJSON proprietário Microsoft (não MIME)JSON normalizado para todos os provedores
PaginaçãoSeguir @odata.nextLink manualmenteFlag --limit
BuscaParams OData $search ou $filternylas email search "query"
Limites de taxa10.000 req / 10 min por caixa — lidar com respostas 429 por conta própriaGerenciado automaticamente com backoff
Caixas compartilhadasMail.Read.Shared + consentimento adminGrant separado, mesmos comandos

8. Notas de implantação Microsoft 365

Tenants Microsoft 365 têm políticas no nível organizacional que podem afetar como ferramentas externas se conectam às caixas. Essas políticas existem em todas as 400+ milhões de licenças pagas e variam significativamente por setor — tenants de saúde e governo aplicam acesso condicional mais restrito que a maioria das implantações comerciais. Os pontos a seguir são específicos do Microsoft 365 e não se aplicam a contas pessoais Outlook.com.

  • Políticas de acesso condicional — se sua org aplica conformidade de dispositivo ou restrições de IP, seu admin de TI pode precisar colocar a conexão Nylas na lista de permissão
  • Tenants GCC e GCC High — tenants de nuvem governamental dos EUA usam endpoints separados da Graph API; verifique com seu admin antes de conectar
  • Políticas de retenção — políticas de retenção de conformidade Microsoft 365 podem impedir a exclusão de mensagens mesmo se o comando CLI for bem-sucedido. A mensagem reaparece após sincronização
  • Notificações Teams e SharePoint — filtre com nylas email search "from:noreply@email.teams.microsoft.com"

Próximos passos