Skip to main content

A high-performance, async Yahoo Mail login automator.

Project description

yahoomail

⚡ A fast and stealthy Python login checker for Yahoo Mail accounts bypasses multi-step login flow, device fingerprint challenges, and delivers accurate status in milliseconds.


🚀 Features

  • 🔁 Fully asynchronous (via httpx.AsyncClient)
  • 🔍 Fast-path + fallback HTML form parsing
  • 🔐 Bypasses Yahoo's anti-bot login system
  • 🎯 Precise detection: SUCCESS, INVALID, 2FA, ERROR, UNKNOWN
  • 🧠 Regex-based turbo form extraction (1-pass)
  • 🌐 Proxy support: http, socks5, with multiple formats
  • 📡 Optimized headers & fingerprint handling
  • 🧪 Debug-ready (optional HTML dumps at every step)
  • 📦 Includes batch checker with configurable concurrency

📦 Installation

pip install yahoomail Or clone locally:

git clone https://github.com/anarchy223/yahoomail.git
cd yahoomail
pip install -r requirements.txt

⚙️ Usage

✅ Basic login check

from yahoomail import login

email = input("Enter Yahoo email: ")
password = input("Enter password: ")

status, message, duration_ms = login(email, password)
print(f"[{status}] {message} ({duration_ms}ms)")

🌍 Set a proxy

You can use the function: set_proxies("YOUR PROXY") to set a proxy. Here an example:

import asyncio
from yahoomail import set_proxies, run_batch

set_proxies("user:pass@host:port")

def load_combos(file_path):
    combos = []
    with open(file_path, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line or ":" not in line:
                continue
            email, password = line.split(":", 1)
            combos.append((email, password))
    return combos

creds = load_combos("combo.txt")
results = asyncio.run(run_batch(creds, concurrency=10))

for email, status, message in results:
    print(f"{email}{status}: {message}")

Supports formats :

  • user:pass@host:port
  • host:port
  • host,port,user,pass
  • host:port:user:pass

🚀 Batch checking (async)

import asyncio
from yahoomail import run_batch

def load_acc(file_path):
    combos = []
    with open(file_path, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line or ":" not in line:
                continue  
            email, password = line.split(":", 1)
            combos.append((email, password))
    return combos

creds = load_acc("accounts.txt")
results = asyncio.run(run_batch(creds, concurrency=10))
for email, status, message in results:
    print(f"{email}{status}: {message}")
Code Meaning
SUCCESS Valid login detected (your accounts is mostly valid!)
Invalid Invalid account
2FA 2-Factor Authentification (or means other errors)
Error Proxy / network / internal error (Or just Yahoo maybe implemented another level cap of security (ya need to check).
Unkown I fucked up...

🧰 Advanced

Enable debug HTML saves: Uncomment or modify the global flag in your script:

ENABLE_DEBUG_FILES = True

It will save HTML dumps per stage for inspection (eg: new security...)

🧠 How it works

This module emulates Yahoo Mail login behavior by reproducing:

  • Initial tokenized form loads
  • Username + password flow separation
  • Dynamic fingerprinting step
  • Cookie-based login validation
  • Full proxy routing with timeout handling
  • No Selenium. No headless browser. Just pure, clean HTTP emulation.

📜 License

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0)

  • ✅ You can use, study, modify, and share this project.
  • Commercial use (resale, SaaS integration, paid API, etc.) is strictly prohibited.
  • 🧠 You must give credit to the original author.
  • 🔁 If you modify it, you must release your version under the same license.

🔗 Read the full license terms here

☕ A note

This project was born from one simple idea: "If there's no public API... then I become the API."

Enjoy.

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

yahoomail-1.0.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

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

yahoomail-1.0.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file yahoomail-1.0.1.tar.gz.

File metadata

  • Download URL: yahoomail-1.0.1.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for yahoomail-1.0.1.tar.gz
Algorithm Hash digest
SHA256 fc572c456cc2ed44b04d647f1dae593e07ccb9d4f6181851e011fcaf6b29fb8d
MD5 87078545ed4582217c96eefada10388a
BLAKE2b-256 5bb0d0717f8bfbccf2a16f5724f8cb0443caa91b189a698bfdc132d4babbbc96

See more details on using hashes here.

File details

Details for the file yahoomail-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: yahoomail-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for yahoomail-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec7aaf79c9fca5501c6fe4f138a52e35d2ce6097fd94e30ef36baccdca2ba0e
MD5 1c114ff5cd4af084ad7281fef9ba69aa
BLAKE2b-256 1423bf32c920311759a4c71fe635d5409bf71322e8f951db00eaff40359f38bc

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