Aplikasi Temp Mail berbasis Next.js yang menyediakan alamat email sementara instan dengan UI modern glassmorphism. Mendukung 97 domain valid, generate username kustom/random, auto-polling inbox, dan ekstraksi otomatis OTP serta link verifikasi.
- Generate email instan — custom username atau random secara otomatis
- 97 domain valid — diambil langsung dari API NexMail
- 10 pilihan domain acak — dropdown + grid chip yang bisa di-refresh
- Auto-polling inbox — cek pesan masuk setiap 4,5 detik tanpa refresh
- Ekstraksi OTP & link verifikasi — ditampilkan secara mencolok di UI
- UI glassmorphism responsif — nyaman di desktop maupun mobile
- Copy email one-click — salin alamat email dengan satu klik
- Bersihkan inbox — hapus daftar pesan visual kapan saja
- Backend proxy NexMail — backend mencegat API NexMail agar frontend tetap aman
| Komponen | Teknologi |
|---|---|
| Frontend | HTML5 + Vanilla JS + Inter font |
| Backend | Next.js API Routes (serverless) |
| Deploy | Vercel (auto-detect Next.js) |
| Mail Proxy | NexMail API (https://nexmailid.vercel.app) |
temp-mail/
├── lib/
│ └── domains.js # 97 domain valid + helper functions
├── pages/
│ └── api/
│ ├── domains.js # GET /api/domains
│ ├── generate.js # GET /api/generate
│ ├── inbox.js # GET /api/inbox (proxy NexMail)
│ └── docs.js # GET /api/docs (API documentation)
├── public/
│ └── index.html # UI utama (glassmorphism)
├── package.json
└── README.md
Mengembalikan seluruh daftar 97 domain valid.
Response:
{
"success": true,
"count": 97,
"domains": ["guerrillamail.com", "temp-mail.org", ...]
}Membuat alamat email baru.
Query params:
username(opsional) — username kustomdomain(opsional) — domain dari pool, jika kosong/acak maka dipilih random
Response:
{
"success": true,
"email": "user_abc123@domain.com",
"username": "user_abc123",
"domain": "domain.com",
"source": "nexmail",
"generated_at": "2026-09-02T15:00:00.000Z"
}Mengambil inbox untuk email tertentu (proxy ke NexMail).
Query params:
email— alamat email lengkap
Response:
{
"success": true,
"total_messages": 2,
"messages": [
{
"from": "sender@example.com",
"subject": "Verifikasi Akun",
"body": "Kode OTP Anda: 847291",
"date": "2026-09-02 14:30"
}
],
"otp": "847291",
"verification_link": "https://example.com/verify?token=abc"
}Dokumentasi API lengkap.
Response:
{
"name": "Temp Mail API",
"version": "1.0.0",
"base_url": "https://tempmail.yandez.my.id",
"endpoints": [...]
}-
Clone repo
git clone https://github.com/TheyanzXD/temp-mail.git cd temp-mail -
Install dependencies
npm install
-
Jalankan development server
npm run dev
-
Buka browser
http://localhost:3000
- Push repo ini ke GitHub (sudah dilakukan:
TheyanzXD/temp-mail) - Buka vercel.com/new
- Pilih repo
TheyanzXD/temp-mail - Klik Deploy
- Vercel otomatis mendeteksi Next.js dan build proyek
- Setelah deploy selesai, buka URL yang diberikan Vercel
Tidak perlu konfigurasi tambahan.
-
Generate email
- Buka halaman → email otomatis ter-generate
- Atau isi username + pilih domain dari dropdown/grid, lalu klik Generate
- Klik Random untuk username acak
- Klik Refresh domains untuk mengganti 10 pilihan domain
-
Copy email
- Klik ikon 📋 untuk menyalin alamat email ke clipboard
-
Cek inbox
- UI otomatis polling setiap 4,5 detik
- Klik 🔄 untuk refresh manual
- OTP dan link verifikasi muncul otomatis jika terdeteksi
-
Bersihkan inbox
- Klik tombol Bersihkan untuk menghapus semua pesan dari tampilan
-
Lihat dokumentasi API
- Klik API Docs untuk melihat dokumentasi lengkap
- Backend
/api/inboxadalah proxy ke NexMail. Jika NexMail gagal, inbox tidak akan muncul. - Pool domain diambil dari API NexMail dan diperbarui secara periodik.
- Auto-polling hanya aktif setelah email dibuat. Tutup halaman akan menghentikan polling.
- OTP diekstraksi otomatis dari body email dengan regex
\b\d{4,8}\b. Jika format berbeda, OTP mungkin tidak terdeteksi. - Default domain adalah
guerrillamail.comjika tersedia.
Untuk memperbarui daftar domain, jalankan:
npm run update-domainsScript akan mengambil domain terbaru dari NexMail API dan memperbarui lib/domains.js.
Pull request dan issue sangat diterima. Pastikan kode tetap konsisten dengan struktur yang ada.
MIT — bebas dipakai dan dimodifikasi.