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
--stdinLegge le email da stdin (pipe)
--file, -f PATHLegge le email da file (salta le righe che iniziano con #)
--format, -F fmtOutput: table, json, csv, jsonl
--output, -o PATHScrivi l'output su file
--quiet, -qOutput minimo (email<TAB>stato)
--api-key, -k KEYSovrascrive 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
validCasella postale confermata come esistente1 credito
invalidLa casella postale non esiste1 credito
riskyRisultato a bassa affidabilità (Yahoo, AOL, ecc.)Gratis
catch_allIl dominio accetta tutta la posta (impossibile verificare)Gratis
disposableProvider di email temporanea/usa e getta1 credito
unknownImpossibile 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