Strumento CLI
Verifica delle email da riga di comando per DevOps e automazione. Invia liste tramite pipe, esporta in JSON/CSV/JSONL. Zero dipendenze: basta Python.
Installazione
pip install email-validator-cli
Oppure scarica lo script autonomo:
Requisiti: Python 3.8+. Nessuna dipendenza esterna: utilizza solo la libreria standard
(urllib, json, csv, argparse).
Works on Linux, macOS, Windows, and in Docker.
Configurazione
Ottieni la tua chiave API dal Dashboard, poi:
email-validator setup
Oppure configura in modalità non interattiva:
# Variabile d'ambiente
export EV_API_KEY=ev_your_key_here
# Oppure file di configurazione (~/.email-validator.conf)
api_key=ev_your_key_here
# Oppure flag da CLI
email-validator verify user@domain.com --api-key ev_your_key_here
Avvio rapido
Verifica una singola email
email-validator verify user@domain.com
# ✓ user@domain.com valido conf:high mx:gmail-smtp-in.l.google.com 234ms
Invio da stdin
cat emails.txt | email-validator verify --stdin
# ✓ user1@domain.com valido 234ms
# ✗ user2@domain.com non valido L'email non esiste
# ⚠ user3@yahoo.com a rischio Verifly: 87% di affidabilità
Esporta CSV
email-validator verify --file subscribers.txt --format csv --output results.csv
JSON delimitato da righe (compatibile con jq)
cat leads.txt | email-validator verify --stdin --format jsonl | jq '.status'
Account e crediti
email-validator account
# Account: user@example.com
# Piano: Basic
# Crediti: 4500 rimanenti (su 5000)
email-validator crediti
# ✓ 4500 crediti
Opzioni del comando Verify
| Opzione | Descrizione |
|---|---|
--stdin | Legge le email da stdin (pipe) |
--file, -f PATH | Legge le email da file (salta le righe che iniziano con #) |
--format, -F fmt | Output: table, json, csv, jsonl |
--output, -o PATH | Scrivi l'output su file |
--quiet, -q | Output minimo (email<TAB>stato) |
--api-key, -k KEY | Sovrascrive la chiave API per questo comando |
Rilevamento automatico: Quando l'output viene inviato a una pipe (ad es. | jq), the format
automatically switches to jsonl. For interactive terminal use, it defaults to table.
Valori di stato dell'email
| Stato | Significato | Costo in crediti |
|---|---|---|
valid | Casella postale confermata come esistente | 1 credito |
invalid | La casella postale non esiste | 1 credito |
risky | Risultato a bassa affidabilità (Yahoo, AOL, ecc.) | Gratis |
catch_all | Il dominio accetta tutta la posta (impossibile verificare) | Gratis |
disposable | Provider di email temporanea/usa e getta | 1 credito |
unknown | Impossibile determinare (errore di rete/DNS) | Gratis |
CI/CD e esempi di automazione
GitHub Actions
# .github/workflows/validate.yml
- name: Valida la lista di email
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: filtra solo le email valide
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: validazione notturna
# crontab
0 2 * * * /usr/local/bin/email-validator verify --file /data/list.csv \
--output /data/validated.jsonl --format jsonl
Requisiti
- Python 3.8 o versione successiva
- Un account Email Validator attivo con chiave API
- Le email verificate consumano crediti: gli stati free/risky/unknown sono gratuiti
- Limite di frequenza: 60 richieste al minuto per utente