Files
codex-oauth-plus-onboarding…/skill/codex-oauth-plus-onboarding/references/mail2925-correct-inbox-scraping-openai-code-2026-05-11.md
T

74 lines
2.6 KiB
Markdown

# 2925 Webmail correct scraping flow for OpenAI codes (2026-05-11)
## Problem found
BOSS manually checked `chickliu2030@2925.com` / `chickliu2031@2925.com` and saw OpenAI verification messages in Inbox, while the automation reported `candidateCount=0` and no current alias mail.
Root cause: the previous automation used an unreliable route-based folder switch:
```text
https://2925.com/#/mailList?type=收件箱
https://2925.com/#/mailList?type=垃圾箱
```
On 2925 Webmail this can leave the app in an empty-list state even when Inbox has messages. The correct UI state is reached by clicking the left navigation item `收件箱`; the URL then becomes:
```text
https://2925.com/#/mailList
```
## Correct scraping flow
1. Verify visible account gate: top profile text contains the selected pool account, e.g. `chickliu2031@2925.com`.
2. Click the left nav item whose exact text is `收件箱`. Do not rely on `#/mailList?type=收件箱`.
3. Click the actual toolbar `刷新` button after the list is visible.
4. Read mail rows from:
```js
document.querySelectorAll('table.maillist-table tr')
```
Rows can have class `unread-mail`.
5. Match OpenAI/ChatGPT rows by visible row text:
```text
OpenAI / ChatGPT / 你的 ChatGPT 临时验证码 / verification / code
```
6. The generated alias/local-part may not be visible in row text. For 2925 OpenAI mail it was found in hidden tooltip/sender DOM, for example:
```text
bounce+...-chickliu2031som6d8=2925.com@tm1.openai.com
```
So row matching must inspect `innerText`, `textContent`, `title`, `aria-label`, and tooltip descendants, not only visible row text.
7. Click the newest row whose hidden row text contains the current alias local-part. Then extract the strict 6-digit code from the opened mail body near:
```text
输入此临时验证码以继续:
[6-digit-code]
```
8. If OpenAI returns `代码不正确`, click OpenAI resend once, wait briefly, click 2925 left `收件箱` again, refresh, then select the newest row. Old rows remain visible and can produce stale codes.
## Verified result
For:
```text
2925 account: chickliu2031@2925.com
OpenAI alias: chickliu2031som6d8@2925.com
```
The corrected scraper found rows in Inbox and extracted a new verification code from the latest message at `2026-5-11 21:16:37`. Submitting that new code succeeded and OpenAI advanced to:
```text
https://auth.openai.com/add-phone
```
## Do not repeat
Do not conclude “no mail delivered” from `candidateCount=0` if the script only used URL route parameters or did not inspect `table.maillist-table tr`. Confirm by clicking the left Inbox item and checking the table rows.