📚 HomicMail API - Code Examples
Full flow Python - Tạo email, chờ mail, lấy OTP
import requests
import time
# Khởi tạo session để giữ cookie
session = requests.Session()
BASE = "https://tempmail.rionfashion.com"
# 1. Tạo email
r = session.post(f"{BASE}/api/generate", json={"username": "myuser"})
email = r.json()["email"]
print(f"Email: {email}")
# 2. Loop check inbox
for _ in range(30): # timeout 5 phút
r = session.get(f"{BASE}/api/inbox")
emails = r.json()["emails"]
if emails:
# Lấy mail đầu tiên
mail = emails[0]
print(f"New mail from: {mail['from']}, subject: {mail['subject']}")
# 3. Đọc nội dung
detail = session.get(f"{BASE}/api/message/{mail['id']}").json()
print("Body:", detail["body"][:500])
break
time.sleep(10)
Tạo email random - Python
import requests
r = requests.post("https://tempmail.rionfashion.com/api/generate",
json={})
data = r.json()
print(f"Email: {data['email']}")
print(f"Password: {data['password']}")
Bash script - Poll inbox đến khi có mail
#!/bin/bash
BASE="https://tempmail.rionfashion.com"
# 1. Tạo email
EMAIL=$(curl -s -c cookies.txt -X POST $BASE/api/generate \
-H "Content-Type: application/json" \
-d '{"username": "mybot"}' | jq -r .email)
echo "Email: $EMAIL"
# 2. Poll inbox trong 5 phút
for i in {1..30}; do
COUNT=$(curl -s -b cookies.txt $BASE/api/inbox | jq '.emails | length')
if [ "$COUNT" -gt "0" ]; then
echo "Có mail!"
MAIL_ID=$(curl -s -b cookies.txt $BASE/api/inbox | jq -r '.emails[0].id')
curl -s -b cookies.txt "$BASE/api/message/$MAIL_ID" | jq .
break
fi
sleep 10
done
Node.js (axios + tough-cookie) - Full flow
const axios = require('axios');
const { CookieJar } = require('tough-cookie');
const { wrapper } = require('axios-cookiejar-support');
const jar = new CookieJar();
const client = wrapper(axios.create({ jar }));
const BASE = 'https://tempmail.rionfashion.com';
(async () => {
// 1. Tạo email
const { data } = await client.post(`${BASE}/api/generate`, { username: 'mybot' });
console.log('Email:', data.email);
// 2. Poll inbox
for (let i = 0; i < 30; i++) {
const inbox = await client.get(`${BASE}/api/inbox`);
if (inbox.data.emails.length > 0) {
const mailId = inbox.data.emails[0].id;
const mail = await client.get(`${BASE}/api/message/${encodeURIComponent(mailId)}`);
console.log('Subject:', mail.data.subject);
console.log('Body:', mail.data.body);
break;
}
await new Promise(r => setTimeout(r, 10000));
}
})();
🔌 Integration Tips
- Cookie management: Phải giữ cookie session xuyên suốt. Dùng
requests.Session() (Python), axios-cookiejar-support (Node), hay persistent cookie store (Bash).
- Rate limiting: 30 requests/min/IP. Nếu cần nhiều hơn, contact admin để whitelist.
- Auto-refresh: Frontend dùng polling 10s. Script/tool backend nên poll 5-15s tùy use case.
- OTP parsing: Tìm 6 chữ số trong plain body bằng regex
r'\b\d{4,8}\b'.
- Session reuse: Mỗi email có session 60 phút. Sau khi hết hạn, dùng
/api/paste với password để vào lại.