
Ferramenta automatizada de registro de contas Outlook usando protocolo HTTP puro com resolução de captcha PerimeterX, gerenciamento de pool de proxies e recuperação de tokens de e-mail para criação de contas em massa.
Registro em lote da Microsoft Outlook via protocolo puro · Resolução de PerimeterX · Console Web · Pool de proxies / Pool de contas / Verificação de atividade integrada
O que ele resolve · Visão geral da interface · Início rápido · Estratégia anti-banimento · English · Tiếng Việt
Endereço deste repositório:
Este projeto destina-se apenas a fins de aprendizado e pesquisa, não podendo ser utilizado para fins comerciais indevidos. O usuário deve avaliar e cumprir os termos de serviço da Microsoft por conta própria; todas as consequências decorrentes são de responsabilidade do usuário.
Em uma frase: Registro em lote do Outlook via protocolo puro + Console Web, da resolução de PX à vinculação de proofs, verificação de leitura via Graph — todo o fluxo visualizado.
A maioria dos scripts de registro do Outlook resolve apenas "como enviar requisições HTTP", deixando uma grande lacuna de engenharia: como contornar o PerimeterX, como rotacionar proxies, como vincular o e-mail de recuperação de proofs, como ler o token de e-mail após o registro, como gerenciar em lote e como verificar se contas morreram. Este projeto conecta tudo isso em um fluxo completo.
| Scripts similares | Outlook Auto Register | |
|---|---|---|
| Método de implementação | Automação de navegador / protocolo incompleto | Protocolo HTTP puro (Fluent Web API + solver PX), sem dependência de navegador |
| Resolução de captcha | Manual / plataforma única | captcha.run press/silent, compatível com CapSolver / EzCaptcha |
| Proxy | Único HTTP_PROXY | Pool de proxies SQLite: pré-verificação, estatísticas de sucesso, vínculo sticky, estratégia de rotação |
| proofs | Frequentemente ignorados (alta taxa de banimento) | Pool de e-mails de recuperação IMAP externo / catch-all Cloudflare para receber códigos |
| Saída | Arquivo txt de usuário/senha | Combo de quatro / seis segmentos + armazenamento unificado em SQLite |
| Operação | Nenhuma | Console Web: registro em lote, pool de contas, verificação de atividade, manutenção IMAP |
| Leitura de e-mail | Forte dependência do IMAP | Múltiplos modos Graph / Outlook REST / escopo Thunderbird, leitura de e-mail imediatamente após o registro |
Parâmetros à esquerda, SSE à direita enviando o fluxo completo: pré-verificação do proxy → PX → CreateAccount → proofs → leitura via Graph. Na parte inferior, resumo do tempo médio por conta e duração por etapa.

Roteamento automático entre Graph / Outlook REST / IMAP conforme o escopo, com suporte a tarefas de manutenção em lote e autoverificação de leitura de e-mail.

Fluxo de registro
cf_domain), skip padrão proibidoGestão operacional
Resolução de captcha e recebimento de códigos
.env como fallbackPágina de login OAuth (PKCE)
→ signup.live.com/signup (parse do ServerData)
→ CheckAvailableSigninName
→ risk/initialize (continuationToken vazio)
→ Pré-carregamento do humanSensorUrl + coletor 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] e-mail de recuperação externo / catch-all CF / (cancelar e pular quando OUTLOOK_SKIP_PROOFS=1)
→ [Opcional] pular Passkey / obter refresh_token do OAuth de e-mail
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
# Edite o .env: pool de e-mails de recuperação, domínio CF etc. (a chave de captcha é recomendada via console Web, gravada no banco de dados)
.venv/bin/uvicorn webapp.server:app --host 0.0.0.0 --port 8890
Abra http://127.0.0.1:8890 no navegador:
host:port:user:pass ou template de gateway rotativo {sid})Na primeira utilização, a simulação (dry run) está ativada por padrão; nenhum registro real será feito. Após confirmar que a configuração está correta, desmarque a opção antes de executar.
# Conta única (recomendado graph_recovery de seis segmentos: token Graph + e-mail de recuperação)
OUTLOOK_MAIL_TOKEN_MODE=login_exe python main.py \
--proxy 'gate.example.com:1000:user:pass-US-{sid}' \
--country US -v
# Em lote (concorrência conservadora + jitter)
REG_PROXY_RETRIES=6 python main.py --count 10 --concurrency 2 \
--country US --proxy 'gate.example.com:1000:user:pass-US-{sid}' -v
# Apenas registrar, sem concluir o OAuth (sem refresh_token)
python main.py --skip-login
# Registrar mas sem trocar o refresh_token
python main.py --no-mail-token
python scripts/ez_selftest.py
python scripts/captcha_run_selftest.py
| Modo | Formato | Descrição |
|---|---|---|
graph | Quatro segmentos | email----password----client_id----refresh_token |
graph_recovery / login_exe | Seis segmentos | Quatro segmentos + recovery_email----recovery_password (recomendado) |
dual | Seis segmentos | Quatro segmentos + login_client_id----login_refresh_token (token duplo) |
Menu suspenso "Formato de saída" do console Web:
| Opção | Modo correspondente |
|---|---|
| Graph de quatro segmentos | graph |
| Graph de seis segmentos (recomendado) | graph_recovery |
| IMAP de seis segmentos | login_exe |
OUTLOOK_MAIL_TOKEN_MODE)| Modo | Descrição |
|---|---|
graph | Leitura de e-mail via Graph API, utilizável imediatamente após o registro |
outlook_rest | Leitura de e-mail via Outlook REST API |
login_exe / recovery | Escopo Thunderbird (IMAP/POP/SMTP + EWS + Mail.Read/Send), mesmo estilo dos vendedores |
dual | Token duplo: Graph para receber códigos + autorização de login SSO |
# Backend IMAP (cada linha 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 Cloudflare catch-all
OUTLOOK_RECOVERY_BACKEND=cf_domain
OUTLOOK_CF_DOMAIN=your-domain.com
OUTLOOK_CF_WORKER_API_URL=https://apimail.your-domain.com
Após a vinculação bem-sucedida, grava o combo de seis segmentos combo_recovery e o anexa a accounts_recovery.txt.
Proibido pular proofs em lote (OUTLOOK_SKIP_PROOFS=1 apenas para depuração).
accounts/outlook.db){sid}), rótulo de país, pré-verificação e estatísticas de sucessoHTTP_PROXY como fallback| Variável | Descrição |
|---|---|
CAPTCHA_RUN_API_KEY | Chave Bearer do captcha.run (gravação via Web no DB tem prioridade) |
CAPTCHA_RUN_API_BASE | Padrão https://apicn.captcha.run |
HTTP_PROXY | Proxy de fallback do CLI |
OUTLOOK_MAIL_TOKEN_MODE | graph / login_exe / outlook_rest / dual |
OUTLOOK_RECOVERY_BACKEND | imap / cf_domain |
OUTLOOK_EXTERNAL_RECOVERY_POOL_FILE | Arquivo do pool de e-mails de recuperação IMAP |
OUTLOOK_RECOVERY_IMAP_HOST | Host IMAP do e-mail de recuperação |
OUTLOOK_SKIP_PROOFS | Apenas 1 permite cancelar e pular proofs (padrão 0) |
OUTLOOK_DB_PATH | Caminho personalizado do SQLite |
Todas as variáveis em .env.example.
outlook-auto-register/
├── main.py # Entrada do CLI
├── outlook_api_reg/
│ ├── register.py # Orquestração principal
│ ├── bootstrap.py # Pré-carregamento OAuth + PX
│ ├── api.py # API + msaRiskVerifySignature
│ ├── risk.py # risk/verify em duas etapas
│ ├── captcha.py # captcha.run / CapSolver / EzCaptcha
│ ├── post_register.py # slt + proofs + Passkey + OAuth de e-mail
│ ├── external_recovery_pool.py
│ ├── cf_domain_mail.py # Recebimento de códigos via Cloudflare catch-all
│ ├── database.py # Armazenamento unificado em SQLite
│ ├── proxy_pool.py # Gestão do pool de proxies
│ ├── graph_mail.py # Leitura de e-mail via Graph / REST
│ └── constants.py # Constantes do protocolo
├── px_solver/ # Módulo de resolução do PerimeterX
├── webapp/
│ ├── server.py # Console FastAPI
│ └── static/index.html
├── scripts/
│ ├── ANTIBAN.md # Estratégia anti-banimento
│ └── keepalive.py
├── assets/screenshots/ # Capturas de tela do README
└── accounts/ # Dados de contas gerados (gitignored)
--country US)AADSTS7005106 riskBlocksolver (captcha.run via protocolo puro)Consulte scripts/ANTIBAN.md — seleção de proxies, estratégia de proofs, concorrência e jitter, autoverificação da saída etc.
| Link | Descrição |
|---|---|
| Grupo QQ 1040827527 | Discussão e troca de ideias |
| LINUX DO | Discussão na comunidade |
| English · Tiếng Việt | Documentação multilíngue |
Se este projeto foi útil para você, sinta-se à vontade para dar uma ⭐. Se o gráfico exibir temporariamente um aviso de limite da API do GitHub, trata-se de um problema do serviço de terceiros star-history e não afeta o uso do repositório.
Este projeto é licenciado sob a GPL-3.0.