autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
50
skills/github-autoreg/references/mailtm-utils.md
Normal file
50
skills/github-autoreg/references/mailtm-utils.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# mail.tm Utilities — disposable email backend for GitHub AutoReg
|
||||
|
||||
mail.tm API предоставляет временные почтовые ящики без регистрации. GitHub принимает письма на mail.tm-домены (web-library.net, и др.).
|
||||
|
||||
## API Reference
|
||||
|
||||
Base URL: `https://api.mail.tm`
|
||||
|
||||
### create_email()
|
||||
|
||||
```python
|
||||
from src.mailtm_utils import create_email
|
||||
|
||||
mail = create_email()
|
||||
# {
|
||||
# "email": "ghx8s5czsqqfzu@web-library.net",
|
||||
# "password": "shuzMXH4bj1P6Awf9wrA...",
|
||||
# "token": "eyJ0eXAiOiJKV1QiLCJh..."
|
||||
# }
|
||||
```
|
||||
|
||||
Флоу:
|
||||
1. `GET /domains` — получить доступный домен
|
||||
2. `POST /accounts` — создать ящик (`{address, password}`)
|
||||
3. `POST /token` — получить JWT токен (`{address, password}`)
|
||||
|
||||
### wait_for_code(token, timeout=120)
|
||||
|
||||
```python
|
||||
code = wait_for_code(mail["token"], timeout=120)
|
||||
# "848413" — 6-8 digit verification code
|
||||
```
|
||||
|
||||
Флоу:
|
||||
1. `GET /messages` — поллить входящие (Authorization: Bearer token)
|
||||
2. Фильтровать по `from.address` содержит `github.com`
|
||||
3. `GET /messages/{id}` — прочитать тело письма
|
||||
4. Regex `\b(\d{6,8})\b` — извлечь код подтверждения
|
||||
|
||||
## Проверено
|
||||
|
||||
- 2026-07-27: `nova9417` создан через mail.tm (домен web-library.net)
|
||||
- GitHub отправил verification code, код успешно извлечён и применён
|
||||
|
||||
## Питфолы
|
||||
|
||||
- **Домен может меняться** — всегда вызывать `GET /domains` перед созданием, не хардкодить
|
||||
- **Письма могут задержаться** — GitHub отправляет письмо не мгновенно, timeout=120 покрывает
|
||||
- **Токен истекает** — mail.tm JWT живёт ограниченное время, создавать новый ящик для каждой регистрации
|
||||
- **Не использовать для входа** — ящики одноразовые, после регистрации email может понадобиться для 2FA/восстановления
|
||||
Reference in New Issue
Block a user