Ferramenta de Linha de Comando

Verificação de e-mail por linha de comando para DevOps e automação. Processe listas em pipeline, exporte em JSON/CSV/JSONL. Zero dependências — apenas Python.

Instalação

pip install email-validator-cli

Ou baixe o script independente:

Requisitos: Python 3.8+. Sem dependências externas — usa apenas a biblioteca padrão (urllib, json, csv, argparse). Works on Linux, macOS, Windows, and in Docker.

Configuração

Obtenha sua chave de API no Painel, e depois:

email-validator setup

Ou configure de forma não interativa:

# Variável de ambiente
export EV_API_KEY=ev_your_key_here

# Ou arquivo de configuração (~/.email-validator.conf)
api_key=ev_your_key_here

# Ou flag de linha de comando
email-validator verify user@domain.com --api-key ev_your_key_here

Início Rápido

Verifique um único e-mail

email-validator verify user@domain.com
#   ✓ user@domain.com           valid        conf:high mx:gmail-smtp-in.l.google.com 234ms

Envie via stdin (pipe)

cat emails.txt | email-validator verify --stdin
#   ✓ user1@domain.com          valid        234ms
#   ✗ user2@domain.com          invalid      Email does not exist
#   ⚠ user3@yahoo.com           risky        Verifly: 87% confidence

Exportar CSV

email-validator verify --file subscribers.txt --format csv --output results.csv

JSON delimitado por linhas (compatível com jq)

cat leads.txt | email-validator verify --stdin --format jsonl | jq '.status'

Conta e créditos

email-validator account
# Conta:    user@example.com
# Plano:    Basic
# Créditos: 4500 restantes (de 5000)

créditos do email-validator
# ✓ 4500 créditos

Opções do comando Verify

Opção Descrição
--stdinLer e-mails a partir da entrada padrão (pipe)
--file, -f PATHLer e-mails a partir de um ficheiro (ignora linhas que começam com #)
--format, -F fmtSaída: table, json, csv, jsonl
--output, -o PATHGravar a saída num ficheiro
--quiet, -qSaída mínima (email<TAB>estado)
--api-key, -k KEYSubstituir a chave de API neste comando

Deteção automática: Quando a saída é encaminhada por pipe (ex.: | jq), the format automatically switches to jsonl. For interactive terminal use, it defaults to table.

Valores de Estado do E-mail

Status Significado Custo em créditos
validCaixa de correio confirmada como existente1 Credit
invalidA caixa de correio não existe1 Credit
riskyResultado de baixa confiança (Yahoo, AOL, etc.)Grátis
catch_allO domínio aceita todo o correio (não é possível confirmar)Grátis
disposableFornecedor de e-mail temporário/descartável1 Credit
unknownNão foi possível determinar (erro de rede/DNS)Grátis

Exemplos de CI/CD e automação

GitHub Actions

# .github/workflows/validate.yml
- name: Validar lista de e-mails
  run: |
    pip install email-validator-cli
    email-validator verify --file subscribers.txt --format csv --output validated.csv
  env:
    EV_API_KEY: ${{ secrets.EV_API_KEY }}

Bash: filtrar apenas e-mails válidos

email-validator verify --stdin --format jsonl < leads.txt \
  | jq -r 'select(.status=="valid") | .email' \
  > clean_leads.txt

Docker

FROM python:3.12-slim
RUN pip install email-validator-cli
ENTRYPOINT ["email-validator"]

Cron: validação noturna

# crontab
0 2 * * * /usr/local/bin/email-validator verify --file /data/list.csv \
           --output /data/validated.jsonl --format jsonl

Requisitos

  • Python 3.8 ou posterior
  • Uma conta ativa no Email Validator com chave de API
  • Os e-mails verificados consomem créditos — os estados livre/arriscado/desconhecido são gratuitos
  • Limite de taxa: 60 pedidos por minuto por utilizador