Disposable email API β€” buat inbox, terima email, baca isi & link verifikasi.

🌐 https://mailkuh.my.id πŸ“¨ MX mail.mailkuh.my.id:25 πŸ”“ No API key πŸ–₯️ Buka Web UI

πŸ“‹ Overview

Semua response JSON, CORS terbuka (*), tanpa API key. Base URL:

https://mailkuh.my.id
Service ini publik β€” siapa pun yang tahu alamat inbox bisa membaca isinya. Jangan pakai untuk data sensitif.

πŸ”‘ Authentication

Tidak wajib. Opsional kirim x-session-id untuk mengaitkan inbox ke session yang dibuat lewat GET /api/session.

πŸš€ Quickstart

🌐 Custom domain

Inbox hanya bisa dibuat di domain yang sudah terdaftar. Domain aktif sekarang:

1. Arahkan DNS

TypeNameValuePriorityProxy
Amail<ip-server>β€”DNS only
MX@mail.<domain>10β€”
Record A untuk mail harus DNS only (proxy Cloudflare dimatikan) β€” proxy tidak meneruskan SMTP port 25.

2. Daftarkan ke Mailkuh

curl -X POST https://mailkuh.my.id/api/domains \
  -H 'Content-Type: application/json' \
  -d '{"domain":"domainku.com"}'

Response berisi hasil cek DNS live: dns.ok (MX ada) dan dns.pointsHere (MX mengarah ke server ini). Domain tetap ditambahkan walau DNS belum propagasi β€” cek ulang via GET /api/domains/{domain}.

Bisa juga lewat Web UI: tombol 🌐 Domain β†’ Add Domain.

πŸ“‘ Endpoints β€” klik untuk expand & coba langsung

πŸ“¨ SMTP

Kirim email ke [email protected] (atau domain lain yang terdaftar). Server menerima langsung di port 25.

FieldValue
MX hostmail.mailkuh.my.id
Port25
TLStidak (plain SMTP)
Authtidak perlu
Max size5 MB
import smtplib
from email.mime.text import MIMEText

msg = MIMEText("Hello dari luar!")
msg["Subject"] = "Test Mailkuh"
msg["From"] = "[email protected]"
msg["To"] = "[email protected]"

s = smtplib.SMTP("mail.mailkuh.my.id", 25, timeout=20)
s.send_message(msg)
s.quit()

Inbox otomatis dibuat saat email pertama masuk β€” tidak perlu POST dulu. Recipient di domain yang belum terdaftar ditolak 550.

πŸ“Š Message object

FieldTypeKeterangan
idstringID pesan (hex 32)
fromstringEmail pengirim (dari header From)
fromNamestringDisplay name pengirim
envelopeFromstringMAIL FROM di level SMTP
tostringAlamat inbox penerima
subjectstringSubject sudah decode (RFC 2047)
bodystringPlain text (QP/base64 sudah didecode)
htmlstringBagian HTML bila ada
linksstring[]Semua URL yang diekstrak β€” praktis untuk link verifikasi
attachmentsobject[]{filename, contentType, size}
sizenumberUkuran raw (bytes)
receivedAtstringISO timestamp
rawstringRaw RFC822 lengkap

⚠️ Errors

CodeArti
200OK
400Body JSON invalid / field kurang / domain belum terdaftar
404Pesan / domain / route tidak ada

Format error: {"error":"pesan"}. List messages inbox kosong return [], bukan 404.

Mailkuh API v2.1 Β· Web UI Β· JSON spec