[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2781":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":12,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":13,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":14,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":15,"fork":15,"defaultBranch":16,"hasWiki":17,"hasPages":15,"topics":18,"createdAt":8,"pushedAt":8,"updatedAt":19,"readmeContent":20,"aiSummary":21,"trendingCount":13,"starSnapshotCount":13,"syncStatus":22,"lastSyncTime":23,"discoverSource":24},2781,"hotmail_re_plugin","haeyupi\u002Fhotmail_re_plugin","haeyupi",null,"JavaScript",110,41,1,0,4.87,false,"main",true,[],"2026-06-12 02:00:43","﻿# hotmail_re_plugin\n\n> Hotmail-enhanced OpenAI \u002F ChatGPT OAuth automation workflow  \n> 基于社区已有 fork 继续增强的版本：把 Chrome 扩展自动化流程与本地 Hotmail companion service 组合在一起，用于批量跑注册、收码、OAuth 回调与 CPA 验证。\n\n---\n\n## 项目来源 \u002F Project Lineage\n\n这个项目不是从零开始的新工程，而是在已有工作的基础上继续往下补的版本。\n\n- 原始上游仓库：\u003Chttps:\u002F\u002Fgithub.com\u002FQLHazyCoder\u002Fcodex-oauth-automation-extension>\n- 相关帖子：\u003Chttps:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F1928372>\n- 当前这个版本，是在另一个 fork 分支基础上继续改进的，相关帖子：\u003Chttps:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F1914073>\n- Hotmail 能力参考项目：\u003Chttps:\u002F\u002Fgithub.com\u002FZeroPointSix\u002FoutlookEmailPlus>\n\n### 这版主要补了什么 \u002F What this fork adds\n\n1. **拆出本地 `hotmail-service`**  \n   把 Hotmail \u002F Outlook 收码逻辑从扩展运行时中拆出来，改成独立本地服务。\n2. **支持 Hotmail 批量账号数据库调度**  \n   账号导入后进入 SQLite，本地按 `pending -> claimed -> success \u002F failed` 生命周期流转。\n3. **支持 Graph \u002F IMAP \u002F Playwright 多收码链路**  \n   当前支持：\n   - `graph`\n   - `imap_new`\n   - `imap_old`\n   - `playwright`\n   - `auto`\n4. **补了 WebUI 和基础管理能力**  \n   可以直接查看 Hotmail 账号池、状态汇总、批量更新和清理。\n5. **保留了纯账号密码链路的实验入口**  \n   `playwright` 方式可以尝试只有账号密码的 Hotmail 收码，但目前仍然更适合作为实验功能和后续开发基础。\n\n---\n\n## 项目结果 \u002F What this project does now\n\n从当前代码实现来看，这已经不是单一扩展，而是一个 **双组件协作系统**：\n\n- **Chrome Extension (`multiPagePlugins`)**  \n  负责侧栏 UI、Step 1 ~ 9 自动化、页面注入、注册页 \u002F OAuth 页面操作，以及 CPA API 对接。\n- **Hotmail Companion Service (`hotmail-service`)**  \n  负责 Hotmail \u002F Outlook 收码、OAuth helper、本地 SQLite 账号库、批量状态管理，以及 WebUI 管理页面。\n\n### 当前已经实现的能力 \u002F Current implemented capabilities\n\n#### 1. OAuth 链接获取改为 CPA API\n\n当前 Step 1 与 Step 9 不再依赖旧式页面 DOM，而是直接走：\n\n- `GET \u002Fv0\u002Fmanagement\u002Fcodex-auth-url?is_webui=true`\n- `POST \u002Fv0\u002Fmanagement\u002Foauth-callback`\n- `GET \u002Fv0\u002Fmanagement\u002Fget-auth-status?state=...`\n\n#### 2. Hotmail 改为本地服务收码\n\n扩展在 Hotmail 模式下，主要调用本地：\n\n- `GET \u002Fhealth`\n- `POST \u002Ffetch-code-direct`\n- `POST \u002Faccounts\u002Fimport`\n- `GET \u002Faccounts\u002Fsummary`\n- `POST \u002Faccounts\u002Fclaim-next`\n- `POST \u002Faccounts\u002Fmark`\n- `POST \u002Faccounts\u002Freset-claimed`\n\n#### 3. Hotmail 批量账号改为数据库驱动\n\n数据库默认位置：\n\n```text\nhotmail-service\u002Fdata\u002Fhotmail_accounts.db\n```\n\n状态流转：\n\n- `pending`\n- `claimed`\n- `success`\n- `failed`\n\n#### 4. 自带 Hotmail DB WebUI\n\n服务内置：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8001\u002Faccounts\u002Fui\n```\n\n支持：\n\n- 查看账号列表\n- 按状态筛选\n- 单条编辑状态 \u002F 标签 \u002F 备注 \u002F OpenAI 密码\n- 批量更新\n- 批量删除\n- 清空数据库\n- 重置 `claimed`\n\n#### 5. Hotmail 多链路取码\n\n`\u002Ffetch-code-direct` 当前支持：\n\n- `auto`\n- `playwright`\n- `graph`\n- `imap_new`\n- `imap_old`\n\n推荐使用方式：\n\n- 有 `client_id + refresh_token`：优先 `graph` \u002F `imap`\n- 只有邮箱密码：可尝试 `playwright`，但视为实验功能\n\n---\n\n## 架构总览 \u002F Architecture\n\n```text\n.\n├─ README.md\n├─ multiPagePlugins\u002F              # Chrome 扩展主体\n│  ├─ background.js               # Step 1~9 主流程、状态管理、API 调用\n│  ├─ manifest.json               # MV3 扩展清单\n│  ├─ sidepanel\u002F                  # 侧栏 UI\n│  ├─ shared\u002F                     # provider \u002F oauth \u002F verification 公共逻辑\n│  ├─ content\u002F                    # 页面自动化 content scripts\n│  └─ data\u002F\n└─ hotmail-service\u002F               # 本地 FastAPI companion service\n   ├─ app\u002F\n   │  ├─ main.py                  # FastAPI 入口与 API\n   │  ├─ account_db.py            # SQLite 账号库\n   │  ├─ outlook_client.py        # Playwright 收码逻辑\n   │  ├─ oauth_mail_client.py     # Graph \u002F IMAP \u002F OAuth helper\n   │  ├─ models.py                # API 请求\u002F响应模型\n   │  ├─ accounts.py              # CSV 账号加载\n   │  ├─ config.py                # 环境变量配置\n   │  └─ session_cache.py         # 会话缓存\n   ├─ tests\u002F\n   ├─ requirements.txt\n   ├─ start_hotmail_service.ps1\n   └─ API_INTEGRATION.md\n```\n\n### 职责边界 \u002F Responsibilities\n\n| 组件 | 职责 |\n| --- | --- |\n| `multiPagePlugins` | UI、流程控制、页面自动化、邮箱来源切换、CPA API 调用 |\n| `hotmail-service` | Hotmail 收码、账号 DB、WebUI、OAuth helper、会话缓存 |\n\n---\n\n## 前置条件 \u002F Prerequisites\n\n### 必需条件 \u002F Required\n\n- Google Chrome\n- Python 3\n- 可用的 CPA 地址与 Key\n- 已克隆本仓库\n\n### Hotmail 模式额外要求 \u002F Extra requirements for Hotmail mode\n\n#### 稳定主链路：Graph \u002F IMAP\n\n建议准备：\n\n- `email`\n- `password`\n- `client_id`\n- `refresh_token`\n\n#### 实验链路：Playwright 纯密码\n\n如果你只有：\n\n- `email`\n- `password`\n\n也可以尝试 `playwright`，但当前更适合作为实验链路。\n\n---\n\n## 部署流程 \u002F Deployment\n\n推荐按下面顺序来：\n\n1. 启动 `hotmail-service`\n2. 加载 Chrome 扩展\n3. 配置 CPA\n4. 选择邮箱来源与收码方式\n5. 先单步验证，再跑自动任务\n\n### 1）启动 Hotmail companion service\n\n在仓库根目录执行：\n\n```powershell\npowershell -ExecutionPolicy Bypass -File \".\\hotmail-service\\start_hotmail_service.ps1\"\n```\n\n手动方式：\n\n```powershell\ncd .\\hotmail-service\npip install -r requirements.txt\npython -m playwright install chromium\nuvicorn app.main:app --host 127.0.0.1 --port 8001\n```\n\n默认地址：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8001\n```\n\n### 2）验证服务状态\n\n打开：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8001\u002Fhealth\n```\n\n扩展侧栏中也会显示 `Service` 状态：\n\n- 绿色：Online\n- 红色：Offline\n- 橙色：Checking\n\n### 3）加载 Chrome 扩展\n\n1. 打开 `chrome:\u002F\u002Fextensions\u002F`\n2. 开启开发者模式\n3. 点击 **Load unpacked**\n4. 选择：\n\n```text\n.\u002FmultiPagePlugins\n```\n\n---\n\n## 使用说明 \u002F Usage\n\n### 1. 侧栏主要字段 \u002F Main side panel fields\n\n当前侧栏中最关键的配置项有：\n\n- `CPA`\n- `CPA Key`\n- `Source`\n- `Mail`\n- `Hotmail API`\n- `Service`\n- `Open WebUI`\n- `Copy Start Cmd`\n- `Batch`\n- `Import to DB`\n- `Refresh DB Summary`\n- `Email`\n- `Password`\n- `Auto`\n- `Stop`\n\n### 2. 配置 CPA\n\n先填写：\n\n- `CPA`\n- `CPA Key`\n\n然后点击：\n\n- `Save`\n\n作用：\n\n- Step 1 获取 OAuth URL\n- Step 9 上报 callback 并确认最终认证状态\n\n### 3. 选择邮箱来源 \u002F Source\n\n当前支持：\n\n- `mail_2925`\n- `hotmail`\n- `duckduckgo`\n- `cloudflare_temp_email`\n- `relay_firefox`\n\n### 4. 选择收码来源 \u002F Mail\n\n当前支持：\n\n- `2925`\n- `cloudflare_temp_email`\n- `hotmail`\n- `163`\n- `qq`\n- `inbucket`\n\n### 5. Hotmail 模式\n\n当 `Source = hotmail` 时：\n\n- `Mail` 会自动绑定为 `hotmail`\n- 扩展优先从 DB 领取账号\n- `Hotmail API` 默认使用：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8001\n```\n\n- 可通过 `Open WebUI` 直接打开账号管理页\n\n### 6. Hotmail 批量导入格式\n\n`Batch` 中每行一个账号：\n\n```text\nemail----password----client_id----refresh_token\n```\n\n导入步骤：\n\n1. 粘贴到 `Batch`\n2. 点击 `Import to DB`\n3. 点击 `Refresh DB Summary`\n4. 确认 `pending` 数量正常\n\n### 7. 单步运行\n\n第一次建议先验证：\n\n1. Step 1 `Get OAuth Link`\n2. Step 2 `Open Signup`\n3. Step 3 `Fill Email \u002F Password`\n4. Step 4 `Get Signup Code`\n\n### 8. 自动运行\n\n点击 `Auto` 后，扩展会顺序执行 Step 1 ~ 9。\n\n在 Hotmail 模式下，每轮大致流程：\n\n1. 领取下一条 `pending`\n2. 标记为 `claimed`\n3. 执行主流程\n4. 成功后写回 `success`\n5. 失败后写回 `failed`\n6. 继续下一条账号\n\n---\n\n## 功能介绍 \u002F Features\n\n### 1. 9 步自动化流程\n\n1. `Get OAuth Link`\n2. `Open Signup`\n3. `Fill Email \u002F Password`\n4. `Get Signup Code`\n5. `Fill Name \u002F Birthday`\n6. `Login via OAuth`\n7. `Get Login Code`\n8. `OAuth Auto Confirm`\n9. `CPA Verify`\n\n### 2. 多邮箱来源支持\n\n支持 2925、Hotmail、DuckDuckGo、Cloudflare Temp Email、Firefox Relay。\n\n### 3. Hotmail 批量工作流\n\n支持批量导入、DB 状态汇总、自动领取账号、自动回写结果。\n\n### 4. WebUI 管理\n\n支持查看、编辑、批量更新、删除和清库。\n\n### 5. 本地状态持久化\n\n扩展会持久化保存 CPA 与 Hotmail 基础设置，并在 session 中保存运行状态。\n\n---\n\n## 模块说明 \u002F Module Guide\n\n### 扩展部分 \u002F Extension\n\n- `multiPagePlugins\u002Fbackground.js`：主流程控制、状态管理、API 调用\n- `multiPagePlugins\u002Fsidepanel\u002F`：侧栏 UI 和交互逻辑\n- `multiPagePlugins\u002Fshared\u002F`：公共逻辑\n- `multiPagePlugins\u002Fcontent\u002F`：各页面 content scripts\n\n### 服务部分 \u002F Service\n\n- `hotmail-service\u002Fapp\u002Fmain.py`：FastAPI 入口\n- `hotmail-service\u002Fapp\u002Faccount_db.py`：SQLite 账号库\n- `hotmail-service\u002Fapp\u002Foutlook_client.py`：Playwright 收码逻辑\n- `hotmail-service\u002Fapp\u002Foauth_mail_client.py`：Graph \u002F IMAP \u002F OAuth helper\n- `hotmail-service\u002Fapp\u002Fmodels.py`：API 模型\n\n---\n\n## 项目流程 \u002F Workflow\n\n### 主流程 \u002F Main automation flow\n\n#### Step 1 — Get OAuth Link\n\n调用：\n\n```http\nGET \u002Fv0\u002Fmanagement\u002Fcodex-auth-url?is_webui=true\n```\n\n#### Step 2 — Open Signup\n\n打开注册页并准备自动化操作。\n\n#### Step 3 — Fill Email \u002F Password\n\n在 Hotmail 模式下，邮箱优先来自 DB 领取账号。\n\n#### Step 4 — Get Signup Code\n\n普通邮箱继续使用原 content script 逻辑；Hotmail 调用 `\u002Ffetch-code-direct`。\n\n#### Step 5 — Fill Name \u002F Birthday\n\n自动填充页面信息。\n\n#### Step 6 — Login via OAuth\n\n进入 OAuth 登录链路。\n\n#### Step 7 — Get Login Code\n\n再次获取登录验证码，Hotmail 模式同样通过本地服务。\n\n#### Step 8 — OAuth Auto Confirm\n\n自动处理授权页与本地回调。这一步目前最容易受页面变化影响。\n\n#### Step 9 — CPA Verify\n\n调用：\n\n```http\nPOST \u002Fv0\u002Fmanagement\u002Foauth-callback\nGET  \u002Fv0\u002Fmanagement\u002Fget-auth-status?state=...\n```\n\n### Hotmail DB 驱动流程 \u002F Hotmail DB-driven flow\n\n1. 检查 service 健康状态\n2. 清理 stale `claimed`\n3. 领取下一条 `pending`\n4. 执行主流程\n5. 写回 `success` 或 `failed`\n6. 继续下一轮\n\n---\n\n## Service API 概览 \u002F Service API Overview\n\n### 健康检查\n\n```http\nGET \u002Fhealth\n```\n\n### 账号数据库\n\n```http\nPOST \u002Faccounts\u002Fimport\nGET  \u002Faccounts\u002Fsummary\nGET  \u002Faccounts\nGET  \u002Faccounts\u002Fui\nPOST \u002Faccounts\u002Fbatch-update\nPOST \u002Faccounts\u002Freset-claimed\nPOST \u002Faccounts\u002Fclaim-next\nPOST \u002Faccounts\u002Fmark\nPUT  \u002Faccounts\u002F{email}\nDELETE \u002Faccounts\u002F{email}\nPOST \u002Faccounts\u002Fbatch-delete\nPOST \u002Faccounts\u002Fclear\n```\n\n### 收码接口\n\n```http\nPOST \u002Ffetch-code\nPOST \u002Ffetch-code-direct\nPOST \u002Frelease-session\n```\n\n### Microsoft OAuth helper\n\n```http\nGET  \u002Foauth\u002Fauth-url\nPOST \u002Foauth\u002Fexchange-token\n```\n\n---\n\n## 测试与校验 \u002F Testing\n\n### 扩展脚本语法检查\n\n```powershell\nnode --check .\\multiPagePlugins\\background.js\nnode --check .\\multiPagePlugins\\sidepanel\\sidepanel.js\n```\n\n### Hotmail service 测试\n\n```powershell\ncd .\\hotmail-service\npython -m pytest\n```\n\n---\n\n## 常见问题 \u002F FAQ\n\n### 1. Service 一直是 Offline\n\n优先检查：\n\n- `hotmail-service` 是否运行在 `127.0.0.1:8001`\n- `Hotmail API` 是否填写正确\n- `http:\u002F\u002F127.0.0.1:8001\u002Fhealth` 是否能打开\n- Playwright Chromium 是否已安装\n\n### 2. Import to DB 后数量不对\n\n先确认导入格式是否正确：\n\n```text\nemail----password----client_id----refresh_token\n```\n\n### 3. 没有 pending 账号\n\n说明当前数据库中已经没有可用的 `pending`。\n\n### 4. Step 4 \u002F Step 7 取码失败\n\n建议优先检查：\n\n- `access_method` 是否合理\n- `client_id + refresh_token` 是否有效\n- 当前账号质量是否过差\n\n### 5. Step 8 为什么最容易失败\n\n因为它最依赖真实授权页结构、点击定位和 localhost callback。\n\n---\n\n## 实验功能与限制 \u002F Experimental Features & Limitations\n\n### 实验功能\n\n**只有账号密码的 Playwright 收码** 当前保留为实验功能。\n\n建议定位为：\n\n- 有一定成功率\n- 和账号质量关系很大\n- 尚未充分验证稳定性\n- 更适合作为继续开发基础\n\n### 已知限制\n\n- Step 8 容易受页面变化影响\n- `hotmail-service` 需要用户自己先启动\n- Hotmail 模式下数据源以 DB 为准\n- Playwright 链路会受风控与页面变化影响\n\n---\n\n## 相关文档 \u002F Related Docs\n\n- 扩展说明：[`multiPagePlugins\u002FREADME.md`](.\u002FmultiPagePlugins\u002FREADME.md)\n- 服务说明：[`hotmail-service\u002FREADME.md`](.\u002Fhotmail-service\u002FREADME.md)\n- API 集成说明：[`hotmail-service\u002FAPI_INTEGRATION.md`](.\u002Fhotmail-service\u002FAPI_INTEGRATION.md)\n","hotmail_re_plugin 是一个增强版的 Hotmail\u002FOutlook 与 OpenAI\u002FChatGPT OAuth 自动化工作流工具。该项目通过将 Chrome 扩展和本地 Hotmail companion service 结合，实现了批量注册、验证码接收、OAuth 回调及 CPA 验证等功能。其核心功能包括拆分出独立的本地服务处理邮件验证码、支持 SQLite 数据库进行账号管理以及提供多条收码链路（如 Graph API、IMAP 和 Playwright）。此外，它还配备了一个 WebUI 界面，方便用户查看和管理账号状态。适用于需要自动化处理大量 Hotmail 账号注册和验证的场景，比如开发者测试或运营活动准备。",2,"2026-06-11 02:51:12","CREATED_QUERY"]