Skip to main content

Enterprise standard email intelligence and verification.

Project description

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!

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_intel_py-1.0.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

email_intel_py-1.0.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file email_intel_py-1.0.0.tar.gz.

File metadata

  • Download URL: email_intel_py-1.0.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for email_intel_py-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4bcb63b9318dc77a653ca3b57ee6e850764d981877841613cda002003a5d72c9
MD5 2fabfe22b9bc847d9672e074a78a4f32
BLAKE2b-256 0f1fea7afeb07365e1b59cc89b0db128796f289b3a60c42187089203fc5c6665

See more details on using hashes here.

File details

Details for the file email_intel_py-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: email_intel_py-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for email_intel_py-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06b619ca5d03817094d32aa9b717e16953f04457df3ee22bb50a9a654b4ebd27
MD5 9b9b163abddf52247782190b42ce8441
BLAKE2b-256 b2c35f57c6e803cdc7aabd67170ac95c6360c4c8f106abf0c58557a67300b0c1

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