The Ultimate Enterprise-Standard Email Verification & Intelligence Library for Python
🌐 Website: email-intel.itshivam.in
This library is primarily focused on checking if an email is valid, checking if it's a temp/disposable email, and inferring the underlying email provider (e.g. Google Workspace, Microsoft 365, Zoho) with deep DNS analysis.
Features
- Email Validation: Real-time MX record resolution to check if the domain can actually receive emails.
- Disposable Email Detection: Checks domains against an automatically updated daily list of thousands of disposable/temp email services (like 10minutemail, GuerrillaMail).
- Provider Inference: Identifies enterprise security gateways and providers like Proofpoint, Mimecast, Google Workspace, Microsoft 365, Zoho, etc.
- Domain Classification: Intelligently classifies domains into
Education,Government,Organization,Public Webmail, orBusinessbased on TLDs and regex. - Synchronous Execution: Utilizes native
dnspythonfor extremely robust DNS probing.
📊 Intelligence Report Schema
When you analyze an email address (e.g., test@itshivam.in), the library returns a comprehensive intelligence report. Here is the data dictionary and an example of the return values:
| Field | Type | Example Value | Description |
|---|---|---|---|
email |
string | "test@itshivam.in" |
The email address that was analyzed. |
domain |
string | "itshivam.in" |
The extracted domain. |
valid |
boolean | true |
True if the domain has MX records and is not disposable. |
provider |
string | "Zoho Mail" |
The detected email provider behind the domain. |
type |
string | "Business" |
Categorization (e.g., Business, Public Webmail, Education). |
mx / spf / dmarc |
boolean | true |
True if the respective DNS security records were found. |
disposable |
boolean | false |
True if the domain belongs to a temporary/burn-after-reading email service. |
risk |
string | "low" |
Assessed risk level (low, medium, high) based on the score. |
score |
number | 100 |
A score out of 100 indicating the trustworthiness of the email address. |
Installation
pip install email-intel
Integration Guide
Backend Integration (Python)
In your Python backend (e.g., FastAPI, Django, Flask), you can use email-intel to block signups from disposable emails or validate that an email's domain actually exists before saving it to your database.
Here is an example using FastAPI:
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from email_intel import analyze
app = FastAPI()
class RegisterRequest(BaseModel):
email: str
@app.post("/register")
async def register(req: RegisterRequest):
try:
report = analyze(req.email)
except Exception as e:
raise HTTPException(status_code=500, detail="Email validation failed")
# 1. Check if the email domain is valid (has MX records)
if not report.get("valid"):
raise HTTPException(status_code=400, detail="Invalid email domain. Please provide a real email.")
# 2. Check if the email is a disposable/temp email
if report.get("disposable"):
raise HTTPException(status_code=400, detail="Disposable emails are not allowed.")
# 3. Optional: Block free public webmails if you only want B2B users
if report.get("type") == "Public Webmail":
raise HTTPException(status_code=400, detail="Please use your company email address.")
# Proceed with registration...
return {"message": "Registration successful!", "data": report}
CLI Usage
You can also use the package as a CLI tool in your terminal:
email-intel shivam@test.com
This will output a nice, formatted intelligence report utilizing rich!
Metadata
Release files for email-intel-py 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| email_intel_py-1.0.2.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| email_intel_py-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.4 kB
Release files / email_intel_py-1.0.2.tar.gz
| Download URL | email_intel_py-1.0.2.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bdb5a4bbd23523e2c04a898df43bd716f8416901776f1838117f91a952ddc753
|
|
BLAKE2b-256 checksum How to use checksums |
01b49c24f073bf88d6e398018b18d8a478f6efb2a72a10c9f93543b6bc3babcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / email_intel_py-1.0.2-py3-none-any.whl
| Download URL | email_intel_py-1.0.2-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1fd2845baa0dc89bcd4835275d35b6a98d9705c5454725c06c782340a8e2d165
|
|
BLAKE2b-256 checksum How to use checksums |
eab044c13eef2790fb275351e5c3e8b9594d6af4ee6a5b8563d6a6b61b84968a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|