# T-Online.de IMAP Provider — Auto-Reg Infrastructure ## Email Pool - **Location**: `C:\Users\User\Downloads\Telegram Desktop\working_mails.txt` - **Format**: `[REDACTED-EMAIL]:[REDACTED] (one per line, `:` separator) - **Count**: 17,893 emails - **IMAP**: `secureimap.t-online.de:993`, SSL, `ssl_context.check_hostname=False`, `ssl_context.verify_mode=CERT_NONE` ## Auto-Reg Project - **Root**: `C:\Users\User\Desktop\авторег проект\` - **Backend**: `backend/main.py` — FastAPI on port 8000, `uvicorn.run(app, host="0.0.0.0", port=8000)` - **Backend venv**: `.venv\Scripts\python.exe` - **Start**: `unset PYTHONPATH && ".venv\Scripts\python.exe" "backend\main.py"` - **Start script**: `START_AUTOREG.bat` (port 8002, but main.py defaults to 8000) - **DB**: `backend/account_manager.db` (SQLite) - **API**: `http://127.0.0.1:8000/api/health`, `/api/accounts`, `/api/tasks/register` ## Key Scripts | Script | Purpose | |--------|---------| | `camoufox_ai_autoreg.py` | Browser-based AI provider registration (Groq, Mistral, DeepSeek, etc.) | | `chatgpt_reg_imap.py` | Direct ChatGPT login via IMAP OTP (curl_cffi protocol) | | `autoreg.py` | TokenHarbor auto-reg via CDP | | `full_auto_reg.py` | xAI/Grok auto-reg via device auth + IMAP OTP | | `th_gateway_v3.py` | TokenHarbor gateway | | `tusk_gateway.py` | Tusk gateway | ## T-Online IMAP Provider for Backend ### File: `backend/providers/mailbox/tonline_imap.py` Implements `BaseMailbox` with: - `get_email()` → returns next unused email from `working_mails.txt` - `wait_for_code(account, keyword, timeout, before_ids, code_pattern)` → polls IMAP for OTP - `get_current_ids(account)` → returns current email UIDs ### Critical: MAILBOX_FACTORY_REGISTRY The backend's `core/base_mailbox.py` has a **hardcoded** `MAILBOX_FACTORY_REGISTRY` dict. New providers MUST be added here: ```python MAILBOX_FACTORY_REGISTRY = { ... "tonline_imap": _create_tonline, # ← MUST add ... } def _create_tonline(extra: dict, proxy: str | None) -> 'BaseMailbox': from providers.mailbox.tonline_imap import TOnlineMailbox mails_file = (extra or {}).get("mails_file", None) return TOnlineMailbox(mails_file=mails_file) ``` ### Critical: CURL_CA_BUNDLE `curl_cffi` on Windows needs CA bundle path. Set before starting backend: ```python import certifi os.environ["CURL_CA_BUNDLE"] = certifi.where() ``` ### Critical: IP Check Bypass `backend/platforms/chatgpt/register.py` → `_check_ip_location()` uses `cloudflare.com/cdn-cgi/trace`. If it fails, patch to return `True, "DE"`. ### Critical: IMAP Search `wait_for_code` should search `ALL` (not `UNSEEN`) and use targeted FROM search: ```python status, data = imap.search(None, '(OR FROM "openai" FROM "chatgpt" FROM "noreply")') if status != "OK" or not data[0]: status, data = imap.search(None, "ALL") ``` ### Provider Registration via API ```python PUT /api/provider-settings { "provider_type": "mailbox", "provider_key": "tonline_imap", "display_name": "T-Online.de IMAP", "enabled": true, "is_default": true, "config": {}, "auth": {} } ``` ### Create Registration Task ```python POST /api/tasks/register { "platform": "chatgpt", "count": 1, "executor_type": "protocol" } ``` ## Pitfalls - **PYTHONPATH contamination**: Bash shell inherits Hermes venv's PYTHONPATH. Always `unset PYTHONPATH` before running backend scripts. - **Port 8000 conflicts**: Multiple backend instances can bind to port 8000. Kill all before restart: `netstat -ano | grep ":8000"` → `taskkill /F /PID XXXX`. - **DB reset on restart**: Backend recreates `account_manager.db` on restart. Provider settings must be reconfigured via API. - **Provider not instantiated**: Check `MAILBOX_FACTORY_REGISTRY` has the provider key. The `_loaded` flag prevents re-scanning modules. - **OTP emails not arriving at t-online.de**: Some services (Groq, Blackbox.ai) block t-online.de. ChatGPT OTPs DO arrive but may be delayed. - **IMAP search scope**: With 39K+ emails in inbox, searching only last 20 misses OTP. Use targeted FROM search or increase to last 50. - **ChatGPT login flow requires JS**: After OTP validation, ChatGPT returns HTML with JS redirect. Protocol-only (HTTP) approach can't complete the login. Browser-based flow (Camoufox) is needed for the final step.