Skip to main content
Email-Intel Banner

The Ultimate Enterprise-Standard Email Verification & Intelligence Library for Python

PyPI version PyPI downloads License: MIT

🌐 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, or Business based on TLDs and regex.
  • Synchronous Execution: Utilizes native dnspython for 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)

Source distribution for email-intel-py 1.0.2
File Size Uploaded
email_intel_py-1.0.2.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for email-intel-py 1.0.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page