autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
112
skills/account-validation/references/tonline-imap-provider.md
Normal file
112
skills/account-validation/references/tonline-imap-provider.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user