cnlimiter 6891b9f11d 4
2026-03-14 20:36:03 +08:00
4
2026-03-14 20:36:03 +08:00
4
2026-03-14 20:36:03 +08:00
4
2026-03-14 20:36:03 +08:00
2
2026-03-14 16:51:57 +08:00
4
2026-03-14 20:36:03 +08:00
1
2026-03-14 01:27:40 +08:00
4
2026-03-14 20:36:03 +08:00
4
2026-03-14 20:36:03 +08:00
2
2026-03-14 16:51:57 +08:00
4
2026-03-14 20:36:03 +08:00

OpenAI/Codex CLI 自动注册系统

一个功能完整的 OpenAI/Codex CLI 自动注册系统支持多种邮箱服务、Web UI 管理界面和命令行操作。

功能特性

核心功能

  • 自动注册流程 - 完整的 OpenAI 账号自动注册,支持 OAuth 2.0 + PKCE 认证
  • 多种邮箱服务 - 支持 Tempmail.lol、Outlook IMAP、自定义域名邮箱
  • Web UI 界面 - 现代化的 Web 管理界面,包含控制台日志输出
  • 账号管理 - 批量删除、导出JSON/CSV、刷新 Token、查看详情
  • 后台任务 - 异步执行注册任务,实时查看任务状态和日志
  • SQLite 存储 - 轻量级数据库存储账号和配置信息

邮箱服务

服务类型 描述 适用场景
Tempmail.lol 临时邮箱服务 快速测试、一次性注册
Outlook IMAP Outlook 邮箱 IMAP 接收 长期使用的邮箱
自定义域名 支持自定义域名邮箱 API 企业级邮箱服务

Web UI 页面

  • 注册页面 - 嵌入式控制台,实时显示注册日志
  • 账号管理 - 表格展示、批量操作、搜索过滤
  • 系统设置 - 代理配置、邮箱服务管理、注册参数、数据库管理

安装

环境要求

  • Python >= 3.10
  • pip 或 uv 包管理器

安装步骤

# 克隆项目
git clone <repository-url>
cd codex-register-v2

# 创建虚拟环境
python -m venv .venv

# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate

# 安装依赖
pip install -e .

# 或使用 uv推荐
uv sync

使用方法

方式一Web UI推荐

# 启动 Web UI
python webui.py

# 或指定参数
python webui.py --host 0.0.0.0 --port 8000 --debug

# 使用已安装的命令
codex-webui

访问 http://localhost:8000 即可使用 Web 界面。

方式二:命令行

# 单次注册
python cli.py --once

# 循环注册
python cli.py --sleep-min 5 --sleep-max 30

# 使用代理
python cli.py --proxy http://127.0.0.1:7890

# 使用已安装的命令
codex-register --once

命令行参数

参数 说明 默认值
--proxy 代理地址
--once 只运行一次 False
--sleep-min 循环模式最短等待秒数 5
--sleep-max 循环模式最长等待秒数 30
--log-level 日志级别 INFO
--log-file 日志文件路径

配置

配置方式

配置优先级:环境变量 > .env 文件 > 默认值

创建 .env 文件:

# 应用配置
DEBUG=false
LOG_LEVEL=INFO

# 数据库
DATABASE_URL=sqlite:///data/database.db

# Web UI
WEBUI_HOST=0.0.0.0
WEBUI_PORT=8000
WEBUI_SECRET_KEY=your-secret-key

# 代理配置
PROXY_ENABLED=false
PROXY_TYPE=http
PROXY_HOST=127.0.0.1
PROXY_PORT=7890

# OpenAI OAuth
OPENAI_CLIENT_ID=app_EMoamEEZ73f0CkXaXp7hrann

# Tempmail 配置
TEMPMAIL_BASE_URL=https://api.tempmail.lol/v2
TEMPMAIL_TIMEOUT=30

# 自定义域名邮箱
CUSTOM_DOMAIN_BASE_URL=https://mail.example.com/api
CUSTOM_DOMAIN_API_KEY=your-api-key

主要配置项

配置项 说明 默认值
database_url 数据库连接 URL data/database.db
webui_host Web UI 监听地址 0.0.0.0
webui_port Web UI 监听端口 8000
proxy_enabled 是否启用代理 false
proxy_url 代理地址 -
registration_max_retries 注册最大重试次数 3
registration_timeout 注册超时时间(秒) 120

项目结构

codex-register-v2/
├── cli.py                 # 命令行入口
├── webui.py               # Web UI 入口
├── pyproject.toml         # 项目配置
├── requirements.txt       # 依赖列表
├── src/
│   ├── __init__.py
│   ├── config/            # 配置模块
│   │   ├── settings.py    # Pydantic 设置模型
│   │   └── constants.py   # 常量定义
│   ├── core/              # 核心功能
│   │   ├── oauth.py       # OAuth 认证
│   │   ├── register.py    # 注册引擎
│   │   ├── http_client.py # HTTP 客户端
│   │   └── utils.py       # 工具函数
│   ├── database/          # 数据库模块
│   │   ├── models.py      # 数据模型
│   │   ├── crud.py        # CRUD 操作
│   │   ├── session.py     # 会话管理
│   │   └── init_db.py     # 数据库初始化
│   ├── services/          # 邮箱服务
│   │   ├── base.py        # 基类和工厂
│   │   ├── tempmail.py    # Tempmail.lol 服务
│   │   ├── outlook.py     # Outlook IMAP 服务
│   │   └── custom_domain.py # 自定义域名服务
│   └── web/               # Web 模块
│       ├── app.py         # FastAPI 应用
│       └── routes/        # API 路由
│           ├── accounts.py    # 账号管理
│           ├── registration.py # 注册任务
│           ├── settings.py    # 系统设置
│           └── email_services.py # 邮箱服务
├── templates/             # Jinja2 模板
│   ├── index.html         # 注册页面
│   ├── accounts.html      # 账号管理
│   └── settings.html      # 系统设置
├── static/                # 静态文件
│   ├── css/style.css
│   └── js/
│       ├── app.js
│       ├── accounts.js
│       └── settings.js
└── data/                  # 数据目录
    └── database.db        # SQLite 数据库

API 文档

账号管理 API

方法 路径 说明
GET /api/accounts 获取账号列表
GET /api/accounts/{id} 获取单个账号
DELETE /api/accounts/{id} 删除账号
POST /api/accounts/batch-delete 批量删除
GET /api/accounts/export 导出账号
POST /api/accounts/{id}/refresh 刷新 Token

注册任务 API

方法 路径 说明
POST /api/registration/start 开始注册
GET /api/registration/status/{uuid} 任务状态
GET /api/registration/logs/{uuid} 任务日志
DELETE /api/registration/cancel/{uuid} 取消任务

设置 API

方法 路径 说明
GET /api/settings 获取设置
PUT /api/settings 更新设置
GET /api/settings/email-services 邮箱服务列表
POST /api/settings/email-services 创建邮箱服务

开发

运行测试

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest

代码风格

项目使用 Python 3.10+ 特性包括类型注解、dataclass、Pydantic 模型等。

添加新的邮箱服务

  1. 继承 BaseEmailService
  2. 实现必需的方法:get_email(), wait_for_code(), get_status()
  3. EmailServiceFactory 中注册服务
from src.services import BaseEmailService, EmailServiceFactory, EmailServiceType

class MyEmailService(BaseEmailService):
    async def get_email(self) -> str:
        # 实现获取邮箱地址
        pass

    async def wait_for_code(self, email: str, timeout: int = 300) -> str:
        # 实现等待验证码
        pass

# 注册服务
EmailServiceFactory.register(EmailServiceType.CUSTOM, MyEmailService)

技术栈

  • Web 框架: FastAPI + Uvicorn
  • 模板引擎: Jinja2
  • 数据库: SQLAlchemy + SQLite
  • HTTP 客户端: curl_cffi支持浏览器指纹模拟
  • 数据验证: Pydantic
  • 认证: OAuth 2.0 + PKCE

许可证

MIT License

作者

Yasal


注意: 本工具仅供学习和研究目的,请勿用于违反 OpenAI 服务条款的活动。

Description
No description provided
Readme MIT 1.4 MiB
Languages
Python 69%
JavaScript 19.8%
HTML 9%
CSS 2%