A clean, modular Python client for YOPmail disposable email service
Project description
๐ง YOPmail Client
โ ๏ธ IMPORTANT DISCLAIMER: This project is for educational purposes only. Please use responsibly and in accordance with YOPmail's terms of service. The authors are not responsible for any misuse of this software.
๐ฏ Overview
A clean, modular Python client for interacting with YOPmail disposable email service. Built with modern Python practices, comprehensive error handling, and a simple API for easy integration.
โจ Key Features
- ๐ Secure Authentication - Robust cookie management and session handling
- ๐ฌ Message Management - List, fetch, and process emails efficiently
- ๐ก๏ธ Rate Limiting - Built-in protection against service limits
- ๐ Proxy Support - Advanced proxy rotation capabilities
- ๐ Comprehensive Logging - Detailed operation tracking
- ๐๏ธ CLI Interface - Easy command-line access
- ๐ Type Safety - Full type annotations throughout
๐ Quick Start
Installation
# Clone the repository
git clone https://github.com/firasguendouz/yopmail_auto.git
cd yopmail_auto
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .
Basic Usage
from modules.yopmail_client import check_inbox, get_last_message
# Check inbox for messages
messages = check_inbox("yourmailbox")
# Get the latest message
latest = get_last_message("yourmailbox")
if latest:
print(f"Latest: {latest.subject}")
๐ Essential API
Core Functions
| Function | Description | Parameters |
|---|---|---|
check_inbox(mailbox) |
List all messages in inbox | mailbox: str |
get_last_message(mailbox) |
Get most recent message | mailbox: str |
get_message_by_id(mailbox, msg_id) |
Fetch specific message | mailbox: str, msg_id: str |
get_inbox_count(mailbox) |
Count messages in inbox | mailbox: str |
get_inbox_summary(mailbox) |
Get inbox overview | mailbox: str |
Advanced Usage
from modules.yopmail_client import YOPMailClient
# Full client control
with YOPMailClient("mailbox") as client:
client.open_inbox()
messages = client.list_messages()
for msg in messages:
content = client.fetch_message(msg.id)
print(f"Subject: {msg.subject}")
print(f"From: {msg.sender}")
print(f"Content: {content[:100]}...")
๐ฅ๏ธ Command Line Interface
# List all messages
python -m modules.yopmail_client.cli yourmailbox --list
# Show detailed message information
python -m modules.yopmail_client.cli yourmailbox --list --details
# Fetch specific message content
python -m modules.yopmail_client.cli yourmailbox --fetch MESSAGE_ID
๐๏ธ Architecture
Project Structure
yopmail-client/
โโโ ๐ modules/
โ โโโ ๐ yopmail_client/
โ โโโ ๐ client.py # Core client implementation
โ โโโ ๐ simple_api.py # Essential API functions
โ โโโ ๐ constants.py # Configuration constants
โ โโโ ๐ cookies.py # Cookie management
โ โโโ ๐ exceptions.py # Custom exceptions
โ โโโ ๐ utils.py # Utility functions
โ โโโ ๐ cli.py # Command-line interface
โ โโโ ๐ proxy_manager.py # Proxy rotation
โโโ ๐ artifacts/
โ โโโ ๐ api_summary.json # API documentation
โโโ ๐ requirements.txt # Dependencies
โโโ ๐ setup.py # Package configuration
โโโ ๐ README.md # This file
Design Principles
- ๐ง Modularity - Clean separation of concerns
- ๐ก๏ธ Security - Safe handling of credentials and sessions
- ๐ Scalability - Built for high-volume operations
- ๐ Observability - Comprehensive logging and monitoring
- ๐ฏ Simplicity - Easy-to-use API design
โ๏ธ Configuration
Rate Limiting
config = {
"rate_limit_detection": True,
"rate_limit_delay": 2.0, # seconds
"max_retries": 3
}
messages = check_inbox("mailbox", config=config)
Proxy Support
config = {
"proxy_enabled": True,
"proxy_list": [
"http://proxy1:8080",
"http://proxy2:8080"
],
"proxy_rotation": True
}
๐งช Testing
# Run all tests
pytest tests/
# Run with coverage report
pytest --cov=modules.yopmail_client tests/
# Run specific test file
pytest tests/test_client_basic.py
๐ Performance
- โก Fast Response - Optimized HTTP requests
- ๐ Connection Pooling - Efficient resource usage
- ๐ Rate Limiting - Automatic backoff strategies
- ๐ Proxy Rotation - Load distribution across proxies
๐ค Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
# Clone and setup development environment
git clone https://github.com/firasguendouz/yopmail_auto.git
cd yopmail_auto
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest tests/
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
โ ๏ธ Legal Notice
This software is provided for educational and research purposes only.
- ๐ซ No Spam - Do not use for sending unsolicited emails
- ๐ซ No Abuse - Respect YOPmail's terms of service
- ๐ซ No Commercial Use - Not intended for commercial applications
- โ Educational Use - Perfect for learning email automation
- โ Research - Ideal for academic and research projects
The authors are not responsible for any misuse of this software.
๐ Support
- ๐ง Issues: GitHub Issues
- ๐ Documentation: Wiki
- ๐ฌ Discussions: GitHub Discussions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yopmail_client-1.0.4.tar.gz.
File metadata
- Download URL: yopmail_client-1.0.4.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bbd7c9b4d5195769e5e57588e4c8c54f721b8b39ba5547d8ff5a5715d9d9b56
|
|
| MD5 |
d0a9eb52b311827c7d019a91cbd2b015
|
|
| BLAKE2b-256 |
d12011c251f07f406fc662743b8fe664dfad87810fa881cb9141f75415b32329
|
File details
Details for the file yopmail_client-1.0.4-py3-none-any.whl.
File metadata
- Download URL: yopmail_client-1.0.4-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0f026c4d2fe7832d0d4767a4a458692d4b9f2a98019984965efef43903193dc
|
|
| MD5 |
cc0b2263a9736ffa4b2fb88737cd190d
|
|
| BLAKE2b-256 |
68af22b24b5b2ef8da294f5ecb69f65b92f4038bd1058fb2fdc84fb0593dfe25
|