69 lines
2.2 KiB
Markdown
69 lines
2.2 KiB
Markdown
# mail.tm Disposable Email API
|
||
|
||
Бесплатный disposable email API. Не требует регистрации, токен через JWT.
|
||
|
||
## API Base
|
||
|
||
`https://api.mail.tm`
|
||
|
||
## Create Account
|
||
|
||
```python
|
||
import urllib.request, json, time
|
||
|
||
# Генерация уникального адреса
|
||
addr = f"user{int(time.time()) % 100000000}@emalupe.com"
|
||
req = urllib.request.Request(
|
||
'https://api.mail.tm/accounts',
|
||
data=json.dumps({'address': addr, 'password': 'StrongPass123!'}).encode(),
|
||
headers={'Content-Type': 'application/json'}
|
||
)
|
||
resp = urllib.request.urlopen(req)
|
||
data = json.loads(resp.read())
|
||
# → {"id": "...", "address": "user12345678@emalupe.com", ...}
|
||
```
|
||
|
||
## Get Token (JWT)
|
||
|
||
```python
|
||
req = urllib.request.Request(
|
||
'https://api.mail.tm/token',
|
||
data=json.dumps({'address': addr, 'password': 'StrongPass123!'}).encode(),
|
||
headers={'Content-Type': 'application/json'}
|
||
)
|
||
resp = urllib.request.urlopen(req)
|
||
data = json.loads(resp.read())
|
||
token = data['token'] # JWT for Bearer auth
|
||
```
|
||
|
||
## Check Inbox
|
||
|
||
```python
|
||
req = urllib.request.Request(
|
||
'https://api.mail.tm/messages',
|
||
headers={'Authorization': f'Bearer {token}'}
|
||
)
|
||
resp = urllib.request.urlopen(req)
|
||
data = json.loads(resp.read())
|
||
# → {"hydra:member": [{"id": "...", "subject": "...", ...}]}
|
||
```
|
||
|
||
## Read Message
|
||
|
||
```python
|
||
req = urllib.request.Request(
|
||
f'https://api.mail.tm/messages/{msg_id}',
|
||
headers={'Authorization': f'Bearer {token}'}
|
||
)
|
||
resp = urllib.request.urlopen(req)
|
||
data = json.loads(resp.read())
|
||
# → {"html": ["<html>..."], "text": "..."}
|
||
```
|
||
|
||
## Pitfalls
|
||
|
||
- **Домен `@emalupe.com`**: не блокируется большинством сервисов (в отличие от `@mail.tm`, `@guerrillamail.com`)
|
||
- **Токен короткоживущий**: получай свежий токен перед каждым использованием
|
||
- **Rate limit**: ~3-5 запросов подряд, потом пауза
|
||
- **Не все сервисы принимают**: ClickUp, Stagewise, некоторые AI-платформы блокируют disposable домены
|
||
- **Для массовой регистрации**: лучше Gmail+aliases, catch-all домены, или temp.coda.ink |