50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
# 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/восстановления |