docs(readme): document yyds mail provider support

This commit is contained in:
Logic
2026-03-21 15:29:46 +08:00
parent 380da813c5
commit cf20b9acc6
2 changed files with 40 additions and 12 deletions

View File

@@ -1,12 +1,19 @@
# gptplus_machine # gptplus_machine
ChatGPT 账号自动注册工具,以及 Codex CLI OAuth 登录工具。 ChatGPT 账号自动注册 / Plus 支付链接生成工具,以及 Codex CLI OAuth 登录工具。
当前临时邮箱 provider 支持:
- `vmail`
- `mailtm`
- `yyds`
## 功能 ## 功能
- **register** — 自动注册新 ChatGPT 账号,输出邮箱、密码、邮箱凭证 - **register** — 自动注册新 ChatGPT 账号,输出邮箱、密码、邮箱凭证、access token
- **checkout** — 注册账号后生成 Plus 支付链接(首月免费),在浏览器完成支付即可开通 - **checkout** — 注册账号后生成 Plus 支付链接,在浏览器完成支付
- **codex-login** — 对已有账号执行 Codex CLI OAuth 登录,纯 HTTP 实现,无需浏览器 - **codex-login** — 对已有账号执行 Codex CLI OAuth 登录,纯 HTTP 实现,无需浏览器
- **temp mail** — 支持 `vmail` / `mailtm` / `yyds`
## 安装 ## 安装
@@ -39,7 +46,7 @@ uv sync
# 代理(推荐美国 IP # 代理(推荐美国 IP
SOCKS5_PROXY=socks5://user:pass@host:port SOCKS5_PROXY=socks5://user:pass@host:port
# 临时邮箱服务vmail mailtm # 临时邮箱服务(可选:vmail / mailtm / yyds
MAIL_PROVIDER=vmail MAIL_PROVIDER=vmail
# YesCaptcha注册功能需要 # YesCaptcha注册功能需要
@@ -50,6 +57,17 @@ COUNTRY=US
CURRENCY=usd CURRENCY=usd
``` ```
### 临时邮箱 provider 说明
| Provider | `MAIL_PROVIDER` 值 | 说明 |
|---|---|---|
| vmail.dev | `vmail` | 默认选项;注册时会返回 `mailbox_id`,部分邮箱还会返回 `mailbox_password` |
| mail.tm | `mailtm` | 支持自动创建邮箱并轮询 OTP |
| YYDS Mail | `yyds` | 支持自动创建邮箱并轮询 OTP |
> `register` / `checkout` 都支持以上三种 provider。
> `codex-login` 如需自动拉取邮箱 OTP建议优先使用 `vmail` 或 `yyds``mailtm` 当前更适合手动通过 `--otp` 传入验证码。
## 使用 ## 使用
### 仅注册账号 ### 仅注册账号
@@ -91,7 +109,7 @@ mailbox_id: aBcDeFgHiJkLmNoPq
https://pay.openai.com/c/pay/cs_live_a1... https://pay.openai.com/c/pay/cs_live_a1...
``` ```
在浏览器打开链接,填入信用卡信息完成支付新账号享首月免费优惠Plus 即开通 在浏览器打开链接,按页面提示完成支付。优惠、价格和可用性以实际返回页面为准
### Codex CLI OAuth 登录 ### Codex CLI OAuth 登录
@@ -110,27 +128,37 @@ uv run python src/main.py codex-login --email user@example.com --password yourpa
| `--otp` | 邮箱 OTP如需要| | `--otp` | 邮箱 OTP如需要|
| `--workspace-id` | 指定 workspace ID | | `--workspace-id` | 指定 workspace ID |
| `--authorize-url` | 自定义 OAuth authorize URL | | `--authorize-url` | 自定义 OAuth authorize URL |
| `--mailbox-id` | vmail.dev mailbox ID自动获取 OTP| | `--mailbox-id` | 邮箱 provider 返回的 mailbox/account ID自动获取 OTP 时使用) |
| `--mailbox-password` | vmail.dev mailbox 密码 | | `--mailbox-password` | 邮箱密码(部分 provider 需要) |
成功后输出 `localhost:1455/auth/callback?code=...` 回调 URL交给 Codex CLI 完成登录。 成功后输出 `localhost:1455/auth/callback?code=...` 回调 URL交给 Codex CLI 完成登录。
如果是用本项目刚注册的邮箱继续登录,建议保留 `register` / `checkout` 输出中的:
- `email`
- `mailbox_id`
- `mailbox_password`(如果有)
## 项目结构 ## 项目结构
``` ```
src/ src/
├── __init__.py # 包入口
├── __main__.py # python -m gptplus_auto
├── main.py # 入口register / checkout / codex-login ├── main.py # 入口register / checkout / codex-login
├── config.py # 配置pydantic-settings读取 .env ├── config.py # 配置pydantic-settings读取 .env
├── http_client.py # HTTP 客户端curl_cffi Chrome 模拟) ├── http_client.py # HTTP 客户端curl_cffi Chrome 模拟)
├── vmail_client.py # 临时邮箱客户端 ├── vmail_client.py # 临时邮箱客户端vmail / mailtm / yyds
├── captcha_solver.py # YesCaptcha hCaptcha 解题 ├── captcha_solver.py # YesCaptcha hCaptcha 解题
├── chatgpt_register_http_reverse.py # 注册流程 ├── chatgpt_register_http_reverse.py # 注册流程
├── chatgpt_payment.py # Stripe checkout 流程 ├── chatgpt_payment.py # Stripe checkout 流程
── codex_oauth_http_flow.py # Codex CLI OAuth 登录 ── codex_oauth_http_flow.py # Codex CLI OAuth 登录
└── nodatadog.js # sentinel token 抓包参考数据
``` ```
## 注意事项 ## 注意事项
- 建议使用美国 IP 代理,避免触发风控 - 建议使用美国 IP 代理,避免触发风控
- 同 IP 短时间内多次注册可能被封,建议间隔使用 - 同 IP 短时间内多次注册可能被封,建议间隔使用
- checkout 链接有时效约30分钟,生成后尽快使用 - checkout 链接有时效,生成后尽快使用
- 不同邮箱 provider 返回字段略有区别,属正常现象

View File

@@ -171,8 +171,8 @@ def build_parser():
p_codex.add_argument("--otp", default="", help="Email OTP code (if already known)") p_codex.add_argument("--otp", default="", help="Email OTP code (if already known)")
p_codex.add_argument("--workspace-id", dest="workspace_id", default="", help="Workspace ID to select") p_codex.add_argument("--workspace-id", dest="workspace_id", default="", help="Workspace ID to select")
p_codex.add_argument("--authorize-url", dest="authorize_url", default="", help="Custom authorize URL") p_codex.add_argument("--authorize-url", dest="authorize_url", default="", help="Custom authorize URL")
p_codex.add_argument("--mailbox-password", dest="mailbox_password", default="", help="vmail.dev mailbox password for auto OTP") p_codex.add_argument("--mailbox-password", dest="mailbox_password", default="", help="Mailbox password for auto OTP (provider-specific)")
p_codex.add_argument("--mailbox-id", dest="mailbox_id", default="", help="vmail.dev mailbox ID for auto OTP") p_codex.add_argument("--mailbox-id", dest="mailbox_id", default="", help="Mailbox/account ID for auto OTP (provider-specific)")
return parser return parser