diff --git a/README.md b/README.md index d52dff2..9577c7a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 一个用于批量跑通 ChatGPT OAuth 注册/登录流程的 Chrome 扩展。 -当前版本基于侧边栏控制,支持单步执行、整套自动执行、停止当前流程、保存常用配置,以及通过 DuckDuckGo / QQ / 163 / Inbucket / Hotmail 协助获取验证码。 +当前版本基于侧边栏控制,支持单步执行、整套自动执行、停止当前流程、保存常用配置,以及通过 DuckDuckGo / QQ / 163 / 163 VIP / 126 / Inbucket / Hotmail 协助获取验证码。 ## 插件效果 @@ -53,7 +53,7 @@ - 自动显示当前使用中的密码,便于后续保存 - 自动获取注册验证码与登录验证码 - 支持 `Hotmail`:继续使用 `邮箱 + 客户端 ID + 刷新令牌(refresh token)`,并可在远程服务与本地助手两种模式间切换 -- 支持 `QQ Mail`、`163 Mail`、`Inbucket mailbox` +- 支持 `QQ Mail`、`163 Mail`、`163 VIP Mail`、`126 Mail`、`Inbucket mailbox` - 支持从 DuckDuckGo Email Protection 自动生成新的 `@duck.com` 地址 - 支持基于 Cloudflare 自定义域名自动生成随机邮箱前缀 - Step 5 同时兼容两种页面: @@ -75,7 +75,7 @@ - DuckDuckGo `@duck.com` + QQ / 163 / Inbucket 转发 - Cloudflare 自定义域邮箱前缀 + QQ / 163 / Inbucket 转发 - 手动填写一个可收信邮箱 -- 如果使用 `QQ` / `163` / `Inbucket`,对应页面需要提前能正常打开 +- 如果使用 `QQ` / `163` / `163 VIP` / `126` / `Inbucket`,对应页面需要提前能正常打开 ## 安装 @@ -112,17 +112,17 @@ 如果你只是想先跑通一套最稳的组合,建议直接按下面三种方案之一配置。 -### 方案 A:`CPA + QQ / 163 / 163 VIP` +### 方案 A:`CPA + QQ / 163 / 163 VIP / 126` 1. `CPA` 填你的管理面板 OAuth 页面地址 -2. `Mail` 选择 `QQ Mail`、`163 Mail` 或 `163 VIP Mail` +2. `Mail` 选择 `QQ Mail`、`163 Mail`、`163 VIP Mail` 或 `126 Mail` 3. `邮箱生成` 选择 `DuckDuckGo` 或 `Cloudflare` 4. 若你选择 `Cloudflare`,先按下文把 Cloudflare Email Routing 配好 5. 点击 `获取` 生成邮箱,或手动粘贴一个你能收信的邮箱 6. 先单步验证 `Step 1 ~ Step 4` 7. 验证没问题后再点右上角 `Auto` -### 方案 B:`SUB2API + QQ / 163 / 163 VIP` +### 方案 B:`SUB2API + QQ / 163 / 163 VIP / 126` 1. `来源` 选择 `SUB2API` 2. 填好 `SUB2API` 地址、登录邮箱、登录密码、分组名 @@ -168,13 +168,14 @@ Step 1 和 Step 10 都依赖这个地址。 - `Hotmail` - `163 Mail` - `163 VIP Mail` +- `126 Mail` - `QQ Mail` - `Inbucket` 说明: - `Hotmail` 通过侧边栏里的 Hotmail 账号池选择账号,可切换为远程服务模式或本地助手模式 -- `QQ`、`163`、`163 VIP` 用于直接轮询网页邮箱 +- `QQ`、`163`、`163 VIP`、`126` 用于直接轮询网页邮箱 - `Inbucket` 通过你在侧边栏里配置的 host 访问 `mailbox` 页面:`https:///m//` ### `Hotmail 账号池` @@ -300,7 +301,7 @@ Step 3 使用的注册邮箱。 - Cloudflare 侧的转发规则、Catch-all、路由目标邮箱等,都需要你自己提前在 Cloudflare 后台配置好 - 当 `Mail = Hotmail` 时,这个输入框由账号池自动同步当前账号邮箱 - 当 `Mail = Hotmail` 时,Step 3 会直接使用 Hotmail 账号池里的邮箱;`Duck / Cloudflare` 不参与自动邮箱生成 -- 若你准备走 `Cloudflare`,更推荐把 `Mail` 设为 `QQ / 163 / 163 VIP`;`Inbucket` 仅在它能真实接收外部邮件并完成 Cloudflare 验证时再使用 +- 若你准备走 `Cloudflare`,更推荐把 `Mail` 设为 `QQ / 163 / 163 VIP / 126`;`Inbucket` 仅在它能真实接收外部邮件并完成 Cloudflare 验证时再使用 - 当前 `Auto` 按钮只负责 DuckDuckGo 地址获取 - 如果你使用 Inbucket,它只是验证码收件箱,不会自动生成 Inbucket 地址 @@ -341,6 +342,7 @@ Cloudflare 模式下,插件不会再调用 Cloudflare API 创建路由。 - `Mail = QQ Mail`:Cloudflare 的 `Destination address / Destination addresses` 填你的 QQ 邮箱全地址 - `Mail = 163 Mail`:Cloudflare 的 `Destination address / Destination addresses` 填你的 163 邮箱全地址 - `Mail = 163 VIP Mail`:Cloudflare 的 `Destination address / Destination addresses` 填你的 163 VIP 邮箱全地址 +- `Mail = 126 Mail`:Cloudflare 的 `Destination address / Destination addresses` 填你的 126 邮箱全地址 - `Mail = Inbucket`:仅当你的 Inbucket 实例本身就是一个真实可收外部邮件、且能收到 Cloudflare 验证邮件的地址时再使用 - `Mail = Hotmail`:当前项目的自动流程不推荐和 Cloudflare 同时使用;因为 `Mail = Hotmail` 时,注册邮箱会直接使用 Hotmail 账号池邮箱 @@ -384,7 +386,7 @@ Cloudflare 模式下,插件不会再调用 Cloudflare API 创建路由。 1. 先在插件里点击 `获取`,拿到一个随机前缀邮箱 2. 用另一个邮箱给这个地址发一封测试邮件 3. 不要用目标邮箱给自己发测试邮件,否则某些邮箱服务会把它当成重复邮件直接吞掉 -4. 如果你的 `Mail` 选的是 `QQ / 163 / 163 VIP / Inbucket`,就去对应收件链路里确认这封测试邮件能否到达 +4. 如果你的 `Mail` 选的是 `QQ / 163 / 163 VIP / 126 / Inbucket`,就去对应收件链路里确认这封测试邮件能否到达 #### 官方参考 @@ -507,7 +509,7 @@ Cloudflare 模式下,插件不会再调用 Cloudflare API 创建路由。 - `Hotmail`(远程服务 / 本地助手) - `content/qq-mail.js` -- `content/mail-163.js` +- `content/mail-163.js`(163 / 163 VIP / 126) - `content/inbucket-mail.js` 邮件匹配规则以以下关键词为主: @@ -684,9 +686,10 @@ content/utils.js 通用工具:等待元素、点击、日志、停 content/vps-panel.js CPA 面板步骤:内部 OAuth 刷新 / Step 10 content/signup-page.js ChatGPT 官网 + OpenAI 注册/登录页步骤:Step 1 / 2 / 3 / 5 / 7 / 9 hotmail-utils.js Hotmail 收信相关通用辅助 +mail-provider-utils.js 网页邮箱 provider 配置辅助 content/duck-mail.js Duck 邮箱自动获取 content/qq-mail.js QQ 邮箱验证码轮询 -content/mail-163.js 163 邮箱验证码轮询 +content/mail-163.js 163 / 163 VIP / 126 邮箱验证码轮询 content/inbucket-mail.js Inbucket mailbox 验证码轮询 sidepanel/ 侧边栏 UI ``` diff --git a/background.js b/background.js index 1b1a176..fb7d1cb 100644 --- a/background.js +++ b/background.js @@ -5332,7 +5332,7 @@ async function ensureAutoEmailReady(targetRun, totalRuns, attemptRuns) { if (!currentState.emailPrefix) { throw new Error('Gmail 原邮箱未设置,请先在侧边栏填写。'); } - await addLog(`=== 鐩爣 ${targetRun}/${totalRuns} 杞細Gmail +tag 妯″紡宸插惎鐢紝灏嗗湪姝ラ 3 鑷姩鐢熸垚閭锛堢 ${attemptRuns} 娆″皾璇曪級===`, 'info'); + await addLog(`=== 目标 ${targetRun}/${totalRuns} 轮:Gmail +tag 模式已启用,将在步骤 3 自动生成邮箱(第 ${attemptRuns} 次尝试)===`, 'info'); return null; } if (!currentState.emailPrefix) { diff --git a/项目完整链路说明.md b/项目完整链路说明.md index 140c3e9..e17e348 100644 --- a/项目完整链路说明.md +++ b/项目完整链路说明.md @@ -464,7 +464,24 @@ - [luckmail-utils.js](c:/Users/projectf/Downloads/codex注册扩展/luckmail-utils.js) - LuckMail 相关后台领域逻辑仍在 [background.js](c:/Users/projectf/Downloads/codex注册扩展/background.js) -### 7.4 iCloud +### 7.4 163 / 163 VIP / 126 网页邮箱 + +组成: + +- [mail-provider-utils.js](c:/Users/projectf/Downloads/codex注册扩展/mail-provider-utils.js) +- [content/mail-163.js](c:/Users/projectf/Downloads/codex注册扩展/content/mail-163.js) + +行为约定: + +- `163`、`163 VIP`、`126` 都走同一条“网易网页邮箱”验证码链路。 +- sidepanel 只负责切换 provider 与展示登录入口;后台根据 provider 选择对应网页邮箱首页。 +- 内容脚本来源统一归类到 `mail-163`,这样 Step 4 / Step 8 继续复用同一套验证码读取与邮件清理逻辑。 +- `manifest.json` 需要同时覆盖: + - `https://mail.163.com/*` + - `https://webmail.vip.163.com/*` + - `https://mail.126.com/*` + +### 7.5 iCloud 组成: diff --git a/项目文件结构说明.md b/项目文件结构说明.md index 4d90214..1d0dbfb 100644 --- a/项目文件结构说明.md +++ b/项目文件结构说明.md @@ -26,6 +26,7 @@ - `hotmail-utils.js`:Hotmail 账号与验证码提取相关的纯工具函数,负责账号筛选、验证码匹配、第三方接口数据归一化。 - `icloud-utils.js`:iCloud 隐私邮箱相关的纯工具函数,负责 host、别名列表、保留状态、已用状态等归一化。 - `luckmail-utils.js`:LuckMail 相关的纯工具函数,负责邮箱购买记录、标签、邮件 cursor、验证码匹配等归一化。 +- `mail-provider-utils.js`:网页邮箱 provider 配置纯工具,负责 `163 / 163 VIP / 126 / QQ / Inbucket / Hotmail` 的基础归一化与页面入口配置。 - `managed-alias-utils.js`:共享 Gmail / 2925 的别名邮箱规则,负责解析基邮箱、校验“当前完整注册邮箱”是否仍与基邮箱兼容、生成 Gmail `+tag` 与 2925 随机后缀邮箱,并输出 sidepanel 可复用的 UI 文案。 - `manifest.json`:Chrome 扩展清单,声明权限、背景脚本、侧边栏、内容脚本与规则集。 - `microsoft-email.js`:Microsoft Graph / Outlook 邮件读取辅助模块,负责刷新令牌换 token、邮箱夹轮询和验证码提取。 @@ -73,7 +74,7 @@ - `content/gmail-mail.js`:Gmail 邮箱轮询脚本,负责在 Gmail 页面中匹配验证码邮件。 - `content/icloud-mail.js`:iCloud 邮箱页面脚本,负责在 iCloud Mail 页面中读取邮件详情和验证码。 - `content/inbucket-mail.js`:Inbucket 邮箱轮询脚本,负责在 Inbucket 页面中读取、删除验证码邮件。 -- `content/mail-163.js`:163 / 163 VIP 邮箱轮询脚本,负责网页邮箱验证码读取和邮件清理。 +- `content/mail-163.js`:163 / 163 VIP / 126 邮箱轮询脚本,负责网页邮箱验证码读取和邮件清理。 - `content/mail-2925.js`:2925 邮箱页面脚本,负责 2925 邮箱收件轮询、按步骤会话隔离“已试验证码”、命中邮件后立即删当前邮件,以及在成功后配合后台执行整箱清理。 - `content/qq-mail.js`:QQ 邮箱轮询脚本,负责网页邮箱验证码读取。 - `content/signup-page.js`:注册、登录、授权主内容脚本,负责 OpenAI / ChatGPT 页面上的步骤执行;其中 Step 2 / 3 的延迟点击与延迟提交在真正触发前会先检查 Stop 状态,避免停止后页面继续自动点击。 @@ -151,12 +152,14 @@ - `tests/background-verification-flow-module.test.js`:测试验证码流程模块已接入且导出工厂。 - `tests/cloudflare-temp-email-provider.test.js`:测试 Cloudflare Temp Email provider 的轮询与目标邮箱选择逻辑。 - `tests/cloudflare-temp-email-utils.test.js`:测试 Cloudflare Temp Email 工具层的 URL、域名、邮件解析逻辑。 +- `tests/content-utils.test.js`:测试内容脚本公共工具层对 `mail.126.com` 等网页邮箱来源的识别逻辑。 - `tests/hotmail-api-mode.test.js`:测试 Hotmail API 模式相关文案和集成方式。 - `tests/hotmail-cors-headers.test.js`:测试 Microsoft token 请求相关 DNR 配置。 - `tests/hotmail-utils.test.js`:测试 Hotmail 工具层的账号筛选、验证码提取和消息匹配逻辑。 - `tests/icloud-mail-content.test.js`:测试 iCloud Mail 内容脚本读取邮件正文和选中状态逻辑。 - `tests/icloud-utils.test.js`:测试 iCloud 工具层的 host、别名列表、保留状态与筛选逻辑。 - `tests/luckmail-utils.test.js`:测试 LuckMail 工具层的购买记录、邮件、游标和验证码匹配逻辑。 +- `tests/mail-provider-utils.test.js`:测试网页邮箱 provider 配置工具对 `126` 等 provider 的归一化与入口配置解析。 - `tests/mail-2925-content.test.js`:测试 2925 邮箱内容脚本的轮询快照、忽略邮箱对比、按步骤会话隔离已试验证码、单封邮件删除与整箱删除逻辑。 - `tests/managed-alias-utils.test.js`:覆盖 Gmail / 2925 共享别名工具的解析、生成、兼容性判断。 - `tests/microsoft-email.test.js`:测试 Microsoft 邮件拉取与验证码提取逻辑。