Skip to main content

Open-source OSINT email intelligence tool

Project description

MailAccess Logo

MailAccess

License: MIT Python 3.11+ Docker PyPI PyPI Downloads

Self-hostable OSINT platform for investigating email addresses. Fan out across breach databases, social networks, DNS records, and the open web — get back a unified exposure score and structured findings you can export or pipe into Maltego.

Built for security researchers, OSINT analysts, and penetration testers operating under authorization. Read DISCLAIMER.md before use.

Install

Quickest — CLI only

pip install mailaccess
# or (recommended)
pipx install mailaccess

Full stack (Web UI + API + CLI)

git clone https://github.com/YOUR_USERNAME/mailaccess
cd mailaccess
docker compose up -d
pip install mailaccess
mailaccess config set-url http://localhost:8000

Quick Start

mailaccess investigate you@example.com
mailaccess investigate you@example.com -o report.pdf
mailaccess investigate you@example.com --format json
mailaccess keys list
mailaccess keys set HIBP_API_KEY your-key-here
mailaccess modules

What It Does

  • Concurrent module execution — all modules run in parallel, results stream as they arrive
  • WebSocket streaming — partial results arrive in real time without polling
  • REST API + web UI + CLI — use whatever interface fits your workflow
  • Plugin module system — drop a .py file in backend/modules/ and it auto-registers; no wiring required
  • 6 export formats: JSON, CSV, PDF, Markdown, STIX 2.1, Maltego XML
  • Maltego local transform server — run investigations directly from the Maltego desktop app
  • Webhook notifications — Slack, Discord, or any HTTP endpoint
  • Exposure score (0–100) with risk label: low / medium / high / critical
  • SQLite by default; PostgreSQL optional via Docker Compose profile

Modules

Module What it checks Requires key
hibp Known data breaches via the HIBP v3 API Yes — HIBP_API_KEY
emailrep Reputation score, risk flags, linked profiles (EmailRep.io) No (key optional)
gravatar Gravatar and Libravatar profile, linked accounts No
google_dork Google dork queries via SerpAPI — LinkedIn, GitHub, Pastebin, open web Yes — SERPAPI_KEY
domain_intel WHOIS, SPF / DMARC / MX, website presence, Shodan subdomains No (Shodan optional)
social Account existence on 13 platforms (GitHub, Discord, Spotify, Skype, and more) No
account_discovery Account probing across 120+ platforms via Holehe (opt-in) No
whatsmyname Username enumeration across 800+ platforms via WhatsMyName dataset (opt-in) No
hudson_rock Infostealer credential log lookup via Hudson Rock Cavalier API No
permutation_discovery Generates email permutations from recovered name, probes with HIBP + Hudson Rock (opt-in) No
ghunt Deep Google account intel: GAIA ID, YouTube, Maps reviews, Drive (Gmail only, opt-in) Yes — GHUNT_CREDS_PATH

Export Formats

Format ?format= value Use case
JSON json Programmatic use, archiving
CSV csv Spreadsheet analysis
PDF pdf Human-readable reports
Markdown markdown Wikis, issue trackers
STIX 2.1 stix Threat intelligence platforms
Maltego XML maltego Maltego graph import

Integrations

Integration How
Maltego Local transform server at POST /maltego/email_investigate (no API key required)
Slack Set SLACK_WEBHOOK_URL in .env
Discord Set DISCORD_WEBHOOK_URL in .env
Generic webhook INTEGRATION_WEBHOOK_URL + optional INTEGRATION_WEBHOOK_SECRET (HMAC)

Self-Hosting

cp .env.example .env      # all API keys are optional
docker compose up         # backend :8000  ·  frontend :3000

Open http://localhost:3000 in your browser. Full setup guide: docs/self-hosting.md.

CLI Reference

Command Description
mailaccess investigate <email> Run a full investigation against an email address
mailaccess history List past investigations
mailaccess keys list Show all configured API keys
mailaccess keys set <KEY> <value> Set an API key
mailaccess keys unset <KEY> Remove an API key
mailaccess config set-url <url> Point the CLI at a MailAccess instance
mailaccess modules List all available modules
mailaccess commands List all CLI commands

The --output / -o flag on investigate saves the report to a file. The extension determines the format: .json, .csv, .pdf, .md, .stix.json, .maltego.csv.

API Keys

Key Module Where to get it Required?
HIBP_API_KEY hibp https://haveibeenpwned.com/API/Key Yes (module skips without it)
SERPAPI_KEY google_dork https://serpapi.com Yes (module skips without it)
SHODAN_API_KEY domain_intel https://account.shodan.io No
EMAILREP_API_KEY emailrep https://emailrep.io No
HUNTER_IO_API_KEY hunter_io https://hunter.io No
SLACK_WEBHOOK_URL Webhooks https://api.slack.com/messaging/webhooks No
DISCORD_WEBHOOK_URL Webhooks Discord server settings No

Links

Self-hosting guide Docker Compose, .env reference, PostgreSQL, proxy/Tor, Maltego setup
Module reference All modules, findings schema, adding new modules
API reference REST endpoints, WebSocket events, authentication
Export formats Supported formats, MIME types, filename conventions
Integrations Maltego, Slack, Discord, generic webhooks
Contributing Adding modules, adding exporters, code style, PR checklist
PyPI pip install mailaccess
GitHub Source code, issues, releases

License

MIT. All data queried by MailAccess comes from public sources. See DISCLAIMER.md for authorized use cases and legal responsibility.

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

mailaccess-0.3.0.tar.gz (207.4 kB view details)

Uploaded Source

Built Distribution

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

mailaccess-0.3.0-py3-none-any.whl (103.7 kB view details)

Uploaded Python 3

File details

Details for the file mailaccess-0.3.0.tar.gz.

File metadata

  • Download URL: mailaccess-0.3.0.tar.gz
  • Upload date:
  • Size: 207.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.6

File hashes

Hashes for mailaccess-0.3.0.tar.gz
Algorithm Hash digest
SHA256 25f1f4353480473794ed84da3e3aef5e841e893b5bb4aaf8a9ad3cc92f58368f
MD5 3c395d3c42265da3960556716159614d
BLAKE2b-256 c3bdce301ecaf553ec5953bfbddb8b0d25832dec85d3b56bc94d0a0b17723bfb

See more details on using hashes here.

File details

Details for the file mailaccess-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: mailaccess-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 103.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.6

File hashes

Hashes for mailaccess-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1120ee04ea9a027c4593d1a9aa8ff31fa9b556789c99c25f7e5df6d4ee3c8dfc
MD5 53ebb3aca08cfe0415817708b8f03f8f
BLAKE2b-256 59c62f97b4443bf6ee83dd4755f1b62f4c82ddeb0f673893a9cf29f3abafcec9

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