Spaces:
Paused
Paused
| title: Outlook2API | |
| emoji: π§ | |
| colorFrom: red | |
| colorTo: yellow | |
| sdk: docker | |
| app_port: 7860 | |
| # Outlook2API | |
| Mail.tm-compatible REST API for Outlook/Hotmail/Live accounts with admin panel and batch account registration. | |
| ## Features | |
| - **Mail API** β Mail.tm-compatible Hydra API endpoints (domains, accounts, token, messages) | |
| - **Admin Panel** β Web UI for account management, bulk import/export, webmail with compose/reply, stats dashboard | |
| - **Batch Registration** β Automated Outlook account creation via GitHub Actions | |
| - **CI Auto-Import** β Registered accounts automatically imported to admin panel | |
| - **Verification Code Extraction** β `GET /messages/{id}/code` extracts OTP from emails | |
| ## Quick Start | |
| ```bash | |
| # Install dependencies | |
| pip install -r requirements-api.txt | |
| # Start the API server | |
| python -m outlook2api.app | |
| # Open http://localhost:8001 for homepage | |
| # Open http://localhost:8001/admin for admin panel (default password: bk@3fd3E) | |
| ``` | |
| ### Docker | |
| ```bash | |
| cp .env.example .env | |
| docker compose up -d outlook2api | |
| ``` | |
| ## API Endpoints | |
| ### Mail API (Mail.tm-compatible) | |
| | Method | Path | Auth | Description | | |
| |--------|------|------|-------------| | |
| | GET | `/domains` | No | List supported email domains | | |
| | POST | `/accounts` | No | Register account (validates IMAP) | | |
| | POST | `/token` | No | Get JWT bearer token | | |
| | GET | `/me` | Bearer | Current user info | | |
| | GET | `/messages` | Bearer | List inbox messages | | |
| | GET | `/messages/{id}` | Bearer | Get single message | | |
| | GET | `/messages/{id}/code` | Bearer | Extract verification code | | |
| | DELETE | `/accounts/me` | Bearer | Delete account | | |
| ### Admin API | |
| | Method | Path | Description | | |
| |--------|------|-------------| | |
| | POST | `/admin/api/login` | Login (returns token) | | |
| | GET | `/admin/api/stats` | Dashboard statistics | | |
| | GET | `/admin/api/accounts` | List accounts (search, filter, paginate) | | |
| | POST | `/admin/api/accounts` | Add single account | | |
| | POST | `/admin/api/accounts/bulk` | Bulk import (`["email:pass",...]`) | | |
| | POST | `/admin/api/accounts/upload` | File upload (email:password per line) | | |
| | PATCH | `/admin/api/accounts/{id}` | Toggle active / update notes | | |
| | DELETE | `/admin/api/accounts/{id}` | Delete account | | |
| | GET | `/admin/api/accounts/{id}/password` | Reveal password | | |
| | GET | `/admin/api/accounts/{id}/messages` | Fetch messages via IMAP | | |
| | POST | `/admin/api/accounts/{id}/send` | Send email via SMTP | | |
| | GET | `/admin/api/export` | Export all active accounts | | |
| ## CI Auto-Import | |
| GitHub Actions automatically imports registered accounts to the admin panel. | |
| **Required secrets:** | |
| - `CAPTCHA_CLIENT_KEY` β YesCaptcha/CapSolver API key | |
| - `PROXY_URL` β HTTP/SOCKS5 proxy | |
| - `OUTLOOK2API_URL` β Admin panel URL (e.g., `https://ohmyapi-outlook2api.hf.space`) | |
| - `ADMIN_PASSWORD` β Admin panel password | |
| ```bash | |
| # Trigger registration + auto-import | |
| gh workflow run register-outlook.yml -f count=5 -f threads=1 | |
| ``` | |
| ## Environment Variables | |
| | Name | Default | Description | | |
| |------|---------|-------------| | |
| | `OUTLOOK2API_JWT_SECRET` | `change-me-in-production` | JWT signing secret | | |
| | `ADMIN_PASSWORD` | `bk@3fd3E` | Admin panel password | | |
| | `DATABASE_URL` | `sqlite+aiosqlite:///./data/outlook2api.db` | Database URL | | |
| | `OUTLOOK2API_HOST` | `0.0.0.0` | API bind host | | |
| | `OUTLOOK2API_PORT` | `8001` | API bind port | | |
| | `OUTLOOK_SMTP_HOST` | `smtp-mail.outlook.com` | SMTP server host | | |
| | `OUTLOOK_SMTP_PORT` | `587` | SMTP server port | | |
| ## HuggingFace Deployment | |
| Deployed at: **https://ohmyapi-outlook2api.hf.space** | |
| ## Project Structure | |
| ``` | |
| outlook2api/ | |
| βββ outlook2api/ # FastAPI mail API + admin | |
| β βββ app.py # Application entry point | |
| β βββ routes.py # Mail.tm-compatible API routes | |
| β βββ admin_routes.py # Admin API routes | |
| β βββ database.py # SQLAlchemy models (Account) | |
| β βββ auth.py # JWT auth helpers | |
| β βββ config.py # Environment config | |
| β βββ outlook_imap.py # IMAP client | |
| β βββ outlook_smtp.py # SMTP client (send email) | |
| β βββ store.py # Legacy JSON file store | |
| β βββ static/ # Frontend | |
| β βββ index.html # Homepage | |
| β βββ admin.html # Admin panel | |
| βββ register/ # Batch registration | |
| β βββ outlook_register.py # DrissionPage registrar | |
| β βββ captcha.py # FunCaptcha cloud solver | |
| βββ .github/workflows/ | |
| β βββ register-outlook.yml # CI: register + auto-import | |
| βββ Dockerfile.api | |
| βββ Dockerfile.register | |
| βββ docker-compose.yml | |
| βββ requirements-api.txt | |
| βββ requirements-register.txt | |
| ``` | |