A comprehensive email configuration health checker that helps businesses ensure their email infrastructure is properly configured for security, deliverability, and compliance.
For business owners, managers, and non-technical users who need to understand their email health in plain English.
Features:
- Zero technical jargon
- Business risk assessment (HIGH/MODERATE/LOW)
- Clear explanations of problems and solutions
- What to tell your IT team to fix issues
For IT professionals, system administrators, and security teams who need detailed technical analysis.
Features:
- Full security analysis with rate limiting
- Detailed technical diagnostics
- Anti-abuse protections
- Production-ready with hardened security
python check.py yourdomain.comExample output:
BUSINESS EMAIL HEALTH CHECK
Checking: example.com
1. Can customers send you email? YES
2. Are you protected from email spoofing? YES
3. Will email providers trust your emails? PARTIALLY
4. Is your email encrypted during delivery? YES
RISK LEVEL: MODERATE RISK
Health Score: 75 out of 100 points (75%)
PROBLEMS FOUND:
1. Missing email authentication. Your emails might go to spam folders.
WHAT YOUR IT TEAM NEEDS TO DO:
1. Add a DMARC policy. Tell your IT team: 'Set up DMARC starting with p=none.'
python check_secure.py example.com
# With custom DKIM selectors
python check_secure.py example.com --dkim-selectors google,selector1
# Skip SMTP tests (if behind firewall)
python check_secure.py example.com --skip-smtp# Clone repository
git clone https://github.com/ballance/email-ready.git
cd email-ready
# Install dependencies
pip install -r requirements.txt- Python 3.6+
- dnspython
- requests
Both versions check these essential email configurations:
| Configuration | What It Does | Business Impact |
|---|---|---|
| MX Records | Directs incoming email | Without these, you can't receive email |
| SPF | Lists authorized senders | Prevents spammers from impersonating you |
| DMARC | Email authentication policy | Tells providers how to handle fake emails |
| DKIM | Digital signatures | Proves emails are really from you |
| Encryption | STARTTLS support | Protects email content in transit |
Use check.py if you:
- Run a business and want to check your email setup
- Need to explain email issues to management
- Want a risk assessment in business terms
- Don't know technical terminology
Use check_secure.py if you:
- Manage email infrastructure
- Need detailed technical analysis
- Are performing security audits
- Want to integrate with monitoring systems
The technical version (check_secure.py) includes:
- Input validation to prevent injection attacks
- Rate limiting (50 DNS queries, 5 SMTP connections max)
- SSRF protection
- Safe error handling
- See SECURITY.md for details
- SECURITY.md - Security features and considerations
- DEVELOPER_GUIDE.md - Technical documentation for developers
MIT License - See LICENSE file
For issues or questions:
- Check your spelling of the domain name
- Ensure you have internet connectivity
- Try the business version first for clear explanations
- If you find a bug, please report it via GitHub Issues
Contributions are welcome! Please see DEVELOPER_GUIDE.md for technical details and contribution guidelines.
This tool is for checking domains you own or have permission to test. Do not use for unauthorized scanning or testing of third-party domains.
Created by Chris Ballance