
Strumento automatizzato per la registrazione di account Outlook tramite protocollo HTTP puro, con risoluzione del captcha PerimeterX, gestione del pool di proxy e recupero dei token email per la creazione di account in blocco.
Registrazione batch Microsoft Outlook tramite puro protocollo · Risoluzione PerimeterX · Console Web · Pool di proxy / Pool di account / Verifica attività integrata
Cosa risolve · Panoramica · Avvio rapido · Strategie anti-ban · English · Tiếng Việt
Indirizzo repository:
lxf746/outlook-auto-register
Questo progetto è destinato esclusivamente a scopi di apprendimento e ricerca; non deve essere utilizzato per scopi commerciali o illeciti. L'utente è tenuto a valutare e rispettare i termini di servizio di Microsoft; ogni conseguenza derivante dall'uso è a carico dell'utente.
In breve: registrazione batch Outlook tramite puro protocollo + console Web, dalla risoluzione PX al binding dei proofs, fino alla verifica della posta tramite Graph — l'intero flusso è visualizzato.
La maggior parte degli script di registrazione Outlook risolve solo "come inviare richieste HTTP", lasciando enormi lacune ingegneristiche: come superare PerimeterX, come ruotare i proxy, come associare le email di recupero proofs, come leggere la posta con il token dopo la registrazione, come gestire le operazioni batch, come verificare l'attività degli account. Questo progetto collega tutto in un'unica pipeline completa.
| Script simili | Outlook Auto Register | |
|---|---|---|
| Metodo di implementazione | Automazione browser / protocollo incompleto | Puro protocollo HTTP (Fluent Web API + PX solver), nessuna dipendenza dal browser |
| Risoluzione captcha | Manuale / piattaforma singola | captcha.run press/silent, compatibile con CapSolver / EzCaptcha |
| Proxy | Singolo HTTP_PROXY | Pool di proxy SQLite: pre-controllo, statistiche di successo, binding sticky, strategie di rotazione |
| Proofs | Spesso saltati direttamente (alto tasso di ban) | Pool di email di recupero IMAP esterne / catch-all Cloudflare per la ricezione dei codici |
| Output | File txt con credenziali | Combo a quattro / sei segmenti + archiviazione unificata SQLite |
| Gestione | Nessuna | Console Web: registrazione batch, pool di account, verifica attività, keep-alive IMAP |
| Lettura posta | Forte dipendenza dall'IMAP | Graph / Outlook REST / scope Thunderbird, più modalità, lettura posta subito dopo la registrazione |
Parametri a sinistra, SSE a destra con l'intera pipeline: pre-controllo proxy → PX → CreateAccount → proofs → Graph leggibile. In basso, riepilogo del tempo medio per account e durata delle fasi.

Instradamento automatico a Graph / Outlook REST / IMAP in base allo scope, con supporto per attività keep-alive batch e auto-verifica della lettura posta.

Pipeline di registrazione
cf_domain), skip predefinito vietatoGestione operativa
Risoluzione captcha e ricezione codici
.env come fallbackPagina di login OAuth (PKCE)
→ signup.live.com/signup (analisi ServerData)
→ CheckAvailableSigninName
→ risk/initialize (continuationToken vuoto)
→ Precaricamento humanSensorUrl + collector PX
→ risk/verify #1 (px metadata + msaRiskVerifySignature)
→ [riskChallengeRequired] captcha.run press/silent
→ risk/verify #2 (challengeSolution + px metadata)
→ CreateAccount
→ oauth20_authorize.srf (login slt)
→ [proofs] email di recupero esterna / catch-all CF / (skip con cancel se OUTLOOK_SKIP_PROOFS=1)
→ [Opzionale] Salta Passkey / ottieni refresh_token OAuth posta
git clone https://github.com/lxf746/outlook-auto-register.git
cd outlook-auto-register
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Modifica .env: pool email di recupero, dominio CF, ecc. (la chiave captcha è consigliato scriverla nel DB tramite la console Web)
.venv/bin/uvicorn webapp.server:app --host 0.0.0.0 --port 8890
Apri http://127.0.0.1:8890 nel browser:
host:port:user:pass o template gateway rotanti {sid})Al primo utilizzo il dry-run è attivo per impostazione predefinita; non verrà eseguita alcuna registrazione reale. Dopo aver verificato la configurazione, deseleziona l'opzione prima di eseguire.
# Account singolo (consigliato graph_recovery a sei segmenti: token Graph + email di recupero)
OUTLOOK_MAIL_TOKEN_MODE=login_exe python main.py \
--proxy 'gate.example.com:1000:user:pass-US-{sid}' \
--country US -v
# Batch (concorrenza conservativa + jitter)
REG_PROXY_RETRIES=6 python main.py --count 10 --concurrency 2 \
--country US --proxy 'gate.example.com:1000:user:pass-US-{sid}' -v
# Solo registrazione, senza completare OAuth (nessun refresh_token)
python main.py --skip-login
# Registrazione ma senza scambiare refresh_token
python main.py --no-mail-token
python scripts/ez_selftest.py
python scripts/captcha_run_selftest.py
| Modalità | Formato | Descrizione |
|---|---|---|
graph | Quattro segmenti | email----password----client_id----refresh_token |
graph_recovery / login_exe | Sei segmenti | Quattro segmenti + recovery_email----recovery_password (consigliato) |
dual | Sei segmenti | Quattro segmenti + login_client_id----login_refresh_token (doppio token) |
Menu a tendina «Formato di output» nella console Web:
| Opzione | Modalità corrispondente |
|---|---|
| Graph a quattro segmenti | graph |
| Graph a sei segmenti (consigliato) | graph_recovery |
| IMAP a sei segmenti | login_exe |
OUTLOOK_MAIL_TOKEN_MODE)| Modalità | Descrizione |
|---|---|
graph | Lettura posta tramite Graph API, utilizzabile subito dopo la registrazione |
outlook_rest | Lettura posta tramite Outlook REST API |
login_exe / recovery | Scope Thunderbird (IMAP/POP/SMTP + EWS + Mail.Read/Send), lo stesso dei venditori |
dual | Doppio token: Graph per ricezione codici + autorizzazione login SSO |
# Backend IMAP (ogni riga email----password)
OUTLOOK_RECOVERY_BACKEND=imap
OUTLOOK_EXTERNAL_RECOVERY_POOL_FILE=/path/recovery_pool.txt
OUTLOOK_RECOVERY_IMAP_HOST=imap.your-recovery-host.com
# Backend catch-all Cloudflare
OUTLOOK_RECOVERY_BACKEND=cf_domain
OUTLOOK_CF_DOMAIN=your-domain.com
OUTLOOK_CF_WORKER_API_URL=https://apimail.your-domain.com
Dopo il binding riuscito, viene scritto il combo combo_recovery a sei segmenti e aggiunto a accounts_recovery.txt.
Vietato saltare i proofs in batch (OUTLOOK_SKIP_PROOFS=1 solo per debug).
accounts/outlook.db){sid}), etichette paese, pre-controllo, statistiche di successoHTTP_PROXY come fallback| Variabile | Descrizione |
|---|---|
CAPTCHA_RUN_API_KEY | Chiave Bearer captcha.run (priorità alla scrittura nel DB tramite Web) |
CAPTCHA_RUN_API_BASE | Predefinita https://apicn.captcha.run |
HTTP_PROXY | Proxy di fallback CLI |
OUTLOOK_MAIL_TOKEN_MODE | graph / login_exe / outlook_rest / dual |
OUTLOOK_RECOVERY_BACKEND | imap / cf_domain |
OUTLOOK_EXTERNAL_RECOVERY_POOL_FILE | File del pool di email di recupero IMAP |
OUTLOOK_RECOVERY_IMAP_HOST | Host IMAP delle email di recupero |
OUTLOOK_SKIP_PROOFS | 1 consente di saltare i proofs con cancel (predefinito 0) |
OUTLOOK_DB_PATH | Percorso SQLite personalizzato |
Variabili complete in .env.example.
outlook-auto-register/
├── main.py # Ingresso CLI
├── outlook_api_reg/
│ ├── register.py # Orchestrazione principale
│ ├── bootstrap.py # Precaricamento OAuth + PX
│ ├── api.py # API + msaRiskVerifySignature
│ ├── risk.py # risk/verify in due passaggi
│ ├── captcha.py # captcha.run / CapSolver / EzCaptcha
│ ├── post_register.py # slt + proofs + Passkey + OAuth posta
│ ├── external_recovery_pool.py
│ ├── cf_domain_mail.py # Ricezione codici catch-all Cloudflare
│ ├── database.py # Archiviazione unificata SQLite
│ ├── proxy_pool.py # Gestione pool di proxy
│ ├── graph_mail.py # Lettura posta Graph / REST
│ └── constants.py # Costanti di protocollo
├── px_solver/ # Modulo risoluzione PerimeterX
├── webapp/
│ ├── server.py # Console FastAPI
│ └── static/index.html
├── scripts/
│ ├── ANTIBAN.md # Strategie anti-ban
│ └── keepalive.py
├── assets/screenshots/ # Screenshot README
└── accounts/ # Dati account generati (gitignored)
--country US)AADSTS7005106 riskBlocksolver (captcha.run a puro protocollo)Vedi scripts/ANTIBAN.md — selezione proxy, strategie proofs, concorrenza e jitter, auto-verifica output, ecc.
| Link | Descrizione |
|---|---|
| Gruppo QQ 1040827527 | Discussione e scambio |
| LINUX DO | Discussione community |
| English · Tiếng Việt | Documentazione multilingue |
Se questo progetto ti è utile, lascia una ⭐. Se il grafico mostra temporaneamente un avviso di limite API GitHub, è un problema del servizio di terze parti star-history e non influisce sull'uso del repository.
Questo progetto è rilasciato sotto licenza GPL-3.0.