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 |
|---|---|
--stdin | Ler e-mails a partir da entrada padrão (pipe) |
--file, -f PATH | Ler e-mails a partir de um ficheiro (ignora linhas que começam com #) |
--format, -F fmt | Saída: table, json, csv, jsonl |
--output, -o PATH | Gravar a saída num ficheiro |
--quiet, -q | Saída mínima (email<TAB>estado) |
--api-key, -k KEY | Substituir 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 |
|---|---|---|
valid | Caixa de correio confirmada como existente | 1 Credit |
invalid | A caixa de correio não existe | 1 Credit |
risky | Resultado de baixa confiança (Yahoo, AOL, etc.) | Grátis |
catch_all | O domínio aceita todo o correio (não é possível confirmar) | Grátis |
disposable | Fornecedor de e-mail temporário/descartável | 1 Credit |
unknown | Nã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