Skip to main content

Batch and CLI email validator

Project description

📧 Email Checker

PyPI version Python Version Docker Image MIT License GitHub Repo

Email Checker is a Python-based CLI and Dockerized tool for validating email addresses — individually or in batches. It detects disposable email domains (updated automatically from a public source), integrates with cron for scheduled tasks, and runs smoothly in local and containerized environments.


🚀 Features

  • ✅ Validate a single email address from the CLI or Docker
  • 📄 Batch check emails from CSV files (/input/*.csv)
  • ὐ1 Update and store disposable domains for validation
  • 🕒 Scheduled updates via cron (built-in)
  • 🐳 Docker-ready for isolated use or integration
  • 💻 Easy to install and use via pip or make

📂 Source Code

The complete source code is available on GitHub.
Feel free to explore, contribute, or fork the project.


📦 Installation (CLI version)

  pip install email-checker-mv

ὐ4 Uninstall

  pip uninstall email-checker-mv

🛠️ CLI Commands

Command Description
check_email someone@example.com ✅ Check a single email
check_batch 📄 Batch check .csv files in the input/ dir
update_domains 🔄 Update the list of disposable domains

Disposable domains are fetched from Propaganistas/Laravel-Disposable-Email.

🔍 Email Verification Results

Both check_email and check_batch return results in the format:

📋 Possible values:

Result Meaning
valid 📥 Address exists and accepts emails
invalid|format ❌ Invalid email format (regex check failed)
invalid|non-ascii ❌ Email contains non-ASCII characters
invalid|disposable 🗑️ Disposable/temporary email address
invalid|mx 📡 No MX record found for the domain
invalid|smtp no-code: <msg> 🚫 SMTP server gave no response code
invalid|smtp hard-bounce|<code>|<msg> ❌ Address does not exist (hard bounce)
invalid|smtp soft-bounce|<code>|<msg> ⚠️ Temporary delivery issue (soft bounce)
invalid|smtp unknown|<code>|<msg> ❓ Unknown SMTP response code

📎 Note: check_batch writes the result to a new column in the output CSV file for each email.


🐳 Docker Usage

You can control Docker using either make or manage.sh.

▶️ manage.sh Script

Before using it, ensure it’s executable:

  chmod +x manage.sh
Command Description
./manage.sh -start 🟢 Start the Docker container with build
./manage.sh -stop 🔵 Stop the running container
./manage.sh -destroy ⚠️ Remove containers, images, volumes
./manage.sh -logs 📄 Show cron job logs inside the container
./manage.sh -batch 📬 Run batch check via Docker
./manage.sh -check someone@example.com ✅ Run single email check
./manage.sh -update ὐ1 Update disposable domains inside Docker
./manage.sh -help ℹ️ Show help message

⚙️ Makefile Shortcuts

Use make help to list all commands.

Make Command Description
make start 🟢 Start the container
make stop 🔵 Stop the container
make destroy ⚠️ Remove everything related to the container
make logs 📄 Follow cron job logs
make batch 📬 Run batch email check inside Docker
make check email=someone@example.com ✅ Check a single email
make update ὐ1 Update disposable domains

📂 Cron Customization

You can edit the cron configuration directly inside the running container using:

  docker exec -it email_checker crontab -e

This allows advanced scheduling if needed.


📅 Input Files

  • Batch checks read from .csv files placed in the input/ folder.
  • Results are stored in the output/ folder by default.

📄 License

This project is licensed under the MIT License.


🌐 Projects by the Author

intester.com

InTester is a secure and transparent online knowledge assessment platform. It offers time-limited tests, anti-cheating measures, instant results with PDF certificates, and public test records — making it ideal for job seekers and recruiters alike.

dctsign.com

DCT Sign is a blockchain-backed electronic signature platform that prioritizes privacy and data integrity. Users can securely sign documents without storing the original files, ensuring confidentiality and compliance with advanced e-signature standards.


Thank you for using Email Checker! Contributions and feedback are welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

email_checker_mv-0.2.1.tar.gz (635.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

email_checker_mv-0.2.1-py3-none-any.whl (636.0 kB view details)

Uploaded Python 3

File details

Details for the file email_checker_mv-0.2.1.tar.gz.

File metadata

  • Download URL: email_checker_mv-0.2.1.tar.gz
  • Upload date:
  • Size: 635.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for email_checker_mv-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7b0225e4727728d88b8aabf97f05068bdca89016389723c5cbd63b4104270e63
MD5 4913f712a2c038c50e6d9364b844e76c
BLAKE2b-256 d65cc8be6630a954c5abe52b70f2de42a23c462e8f3ed1e651de9fd87a8f8fe4

See more details on using hashes here.

File details

Details for the file email_checker_mv-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for email_checker_mv-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f77f84cc41dd833d30cd16ff3f315d70d8979226423b0277944baacd6479794f
MD5 b587f220b10d7b09dd8713e800ecc5d3
BLAKE2b-256 61b98753fa124ef4c33bf3684d705a8b07e266f43993af45b8777ae9c488366e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page