mailcat

May 23, 2026 · View on GitHub


The only cat who can find existing email addresses by nickname.

Install

From PyPI (recommended):

pip install mailcat-osint

From source:

git clone https://github.com/sharsil/mailcat
cd mailcat
pip install .

Usage

Run it with a username:

mailcat username

Or as a module:

python -m mailcat username

It's recommended to run mailcat through Tor or a proxy — see Routing through Tor below.

mailcat --tor username
proxychains4 -q mailcat username

mailcat username --proxy http://1.2.3.4:8080

Batch mode

You can check multiple usernames in one run.

Pass several usernames as positional arguments:

mailcat alice bob charlie

Or supply a file with one username (or email address) per line:

mailcat --file usernames.txt

File format example:

alice
bob@proton.me
charlie

You can also combine both — positional names are merged with those from the file:

mailcat alice --file more_users.txt

When more than one username is resolved, a header is printed before each result block so the output is easy to follow:

[*] Checking username: alice
...
[*] Checking username: bob
...

Supported providers

26 active providers covering > 158 domains (plus ~50 Posteo alias domains). Active checks run by default; deprecated checks remain in the source for revival but are skipped on a default run. See the comment block above each function in src/mailcat/__init__.py for the upstream change that broke it and notes on how to revive it.

NameDomainsMethodStatus
Gmailgmail.comSMTPActive
Yandexyandex.ru + 5 aliasesSMTPActive
Protonmailprotonmail.com + 3 aliasesAPIActive
MailRumail.ru + 4 other domainsRegistrationActive
Ramblerrambler.ru + 5 other domainsRegistrationActive
Yahooyahoo.comRegistrationActive
AOLaol.comRegistrationActive
Outlookoutlook.com, hotmail.com, live.com, outlook.de, msn.comMSA credential lookupActive
Zohozohomail.comRegistrationActive
Eclipsoeclipso.eu + 9 other domainsRegistrationActive
Posteoposteo.net + ~50 aliasesRegistrationActive
Firemailfiremail.de + 2 other domainsRegistrationActive
Fastmailfastmail.comHeadless ChromiumActive
StartMailstartmail.comRegistrationActive
Ukrnetukr.netRegistrationActive
Runboxrunbox.com + 29 other domainsRegistrationActive
DuckGoduck.comRegistrationActive
emailnemailn.deRegistrationActive
aikqaikq.de + 40 other domainsRegistrationActive
Vivaldivivaldi.netRegistrationActive
mailDemail.deSMTPActive
int.plint.plHeadless ChromiumActive
Interiainteria.pl + 10 other domainsPassword recoveryActive
t.plt.pl + 8 other domainsRegistrationActive
onet.plonet.pl + 15 other domainsHeadless ChromiumActive
Mailumcyberfear.com, mailum.comRegistrationActive
iCloudicloud.com, me.com, mac.comAccount recoveryDeprecated
HushMailhushmail.com + 5 other domainsRegistrationDeprecated
Xmailxmail.netRegistrationDeprecated
Tutanotatutanota.com + 4 other domainsRegistrationDeprecated
Mailbox.orgmailbox.orgRegistrationDeprecated
WPwp.plRegistrationDeprecated
O2o2.plRegistrationDeprecated
Gazeta.plgazeta.plRegistrationDeprecated

Troubleshooting

Use -m or --max-connections if you get connection errors (Mailcat does 10 parallel connections max by default).

Routing through Tor

The SMTP-based checks (gmail, yandex, mailDe) reach the destination provider's MX servers on TCP port 25. Most residential ISPs and every major cloud provider (AWS, GCP, Azure, Heroku, …) block outbound port 25 as an anti-spam measure, so these checks will time out with messages like:

Error while checking gmail: Timed out connecting to gmail-smtp-in.l.google.com. on port 25

Tor exit nodes generally do not have port 25 blocked, which makes routing through Tor the easiest fix. Mailcat has built-in Tor support via the --tor flag — it expects a SOCKS5 proxy at 127.0.0.1:9050 (the default when you run tor locally).

# 1. Start Tor (macOS / Linux)
brew install tor && tor &        # macOS
sudo systemctl start tor          # Linux with systemd

# 2. Run mailcat through Tor — SMTP checks now succeed
mailcat alex --tor

# Or restrict to just the providers that need it
mailcat alex --tor -p gmail -p yandex -p mailDe

Tor adds ~5–15 s of latency per request, but it is the only reliable way to make the SMTP-25 checks work from a typical home or cloud environment. A clean VPS with unblocked egress 25 (Hetzner after verification, OVH, Vultr) works equally well — point mailcat at it via --proxy or just run mailcat on the VPS itself.

The HTTP-based checks (everything else) work fine from any network and do not require Tor.

SOWEL classification

This tool uses the following OSINT techniques:

Mentions and articles

OSINTEditor Sunday Briefing: Sensational Headlines and Kuomintang Chairmanship Elections

Michael Buzzel: 237 - The Huge OSINT Show by The Privacy, Security, & OSINT Show

bellingcat: First Steps to Getting Started in Open Source Research

OS2INT verifying email addresses using Mailcat

hwosint - Twitter post