Batch and CLI email validator
Project description
📧 Email Checker
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
pipormake
📂 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_batchwrites 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 helpto 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
.csvfiles placed in theinput/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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b0225e4727728d88b8aabf97f05068bdca89016389723c5cbd63b4104270e63
|
|
| MD5 |
4913f712a2c038c50e6d9364b844e76c
|
|
| BLAKE2b-256 |
d65cc8be6630a954c5abe52b70f2de42a23c462e8f3ed1e651de9fd87a8f8fe4
|
File details
Details for the file email_checker_mv-0.2.1-py3-none-any.whl.
File metadata
- Download URL: email_checker_mv-0.2.1-py3-none-any.whl
- Upload date:
- Size: 636.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f77f84cc41dd833d30cd16ff3f315d70d8979226423b0277944baacd6479794f
|
|
| MD5 |
b587f220b10d7b09dd8713e800ecc5d3
|
|
| BLAKE2b-256 |
61b98753fa124ef4c33bf3684d705a8b07e266f43993af45b8777ae9c488366e
|