CLI-Tool

Kommandozeilen-E-Mail-Verifizierung für DevOps und Automatisierung. Listen per Pipe verarbeiten, als JSON/CSV/JSONL exportieren. Keine Abhängigkeiten — nur Python.

Installation

pip install email-validator-cli

Oder laden Sie das eigenständige Skript herunter:

Voraussetzungen: Python 3.8+. Keine externen Abhängigkeiten — es wird nur die Standardbibliothek verwendet (urllib, json, csv, argparse). Works on Linux, macOS, Windows, and in Docker.

Einrichtung

Holen Sie sich Ihren API-Schlüssel im Dashboard, danach:

email-validator setup

Oder nicht-interaktiv konfigurieren:

# Umgebungsvariable
export EV_API_KEY=ev_your_key_here

# Oder Konfigurationsdatei (~/.email-validator.conf)
api_key=ev_your_key_here

# Oder CLI-Flag
email-validator verify user@domain.com --api-key ev_your_key_here

Schnellstart

Einzelne E-Mail verifizieren

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

Aus stdin einlesen

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

CSV exportieren

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

Zeilenweise JSON (jq-kompatibel)

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

Konto & Guthaben

email-validator account
# Konto:    user@example.com
# Tarif:     Basic
# Guthaben:  4500 verbleibend (von 5000)

email-validator credits
# ✓ 4500 Credits

Optionen für den Verify-Befehl

Option Beschreibung
--stdinE-Mails aus stdin lesen (Pipe)
--file, -f PATHE-Mails aus Datei lesen (Zeilen mit # werden übersprungen)
--format, -F fmtAusgabe: table, json, csv, jsonl
--output, -o PATHAusgabe in Datei schreiben
--quiet, -qMinimale Ausgabe (email<TAB>status)
--api-key, -k KEYAPI-Schlüssel für diesen Befehl überschreiben

Automatische Erkennung: Wenn die Ausgabe weitergeleitet wird (z. B. | jq), the format automatically switches to jsonl. For interactive terminal use, it defaults to table.

E-Mail-Statuswerte

Status Bedeutung Credit-Kosten
validPostfach bestätigt vorhanden1 Credit
invalidPostfach existiert nicht1 Credit
riskyErgebnis mit geringer Aussagekraft (Yahoo, AOL usw.)Kostenlos
catch_allDomain akzeptiert alle E-Mails (nicht bestätigbar)Kostenlos
disposableAnbieter für temporäre/Wegwerf-E-Mails1 Credit
unknownNicht ermittelbar (Netzwerk-/DNS-Fehler)Kostenlos

CI/CD- &amp; Automatisierungsbeispiele

GitHub Actions

# .github/workflows/validate.yml
- name: Validate email list
  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: nur gültige E-Mails filtern

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: nächtliche Validierung

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

Voraussetzungen

  • Python 3.8 oder neuer
  • Ein aktives Email-Validator-Konto mit API-Schlüssel
  • Verifizierte E-Mails verbrauchen Kredite – die Status kostenlos/riskant/unbekannt sind kostenfrei
  • Ratenlimit: 60 Anfragen pro Minute und Nutzer