2.6 KiB
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:
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:
https://2925.com/#/mailList
Correct scraping flow
- Verify visible account gate: top profile text contains the selected pool account, e.g.
chickliu2031@2925.com. - Click the left nav item whose exact text is
收件箱. Do not rely on#/mailList?type=收件箱. - Click the actual toolbar
刷新button after the list is visible. - Read mail rows from:
document.querySelectorAll('table.maillist-table tr')
Rows can have class unread-mail.
- Match OpenAI/ChatGPT rows by visible row text:
OpenAI / ChatGPT / 你的 ChatGPT 临时验证码 / verification / code
- 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:
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.
- 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:
输入此临时验证码以继续:
[6-digit-code]
- 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:
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:
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.