SkyTempMail integration and API documentation
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-17 09:41:35 +00:00
examples docs: add SkyTempMail integration guide 2026-08-17 16:35:00 +07:00
.gitignore docs: add SkyTempMail integration guide 2026-08-17 16:35:00 +07:00
API.md docs: clarify HTML body handling 2026-08-17 09:41:35 +00:00
README.md docs: clarify HTML body handling 2026-08-17 09:41:35 +00:00

SkyTempMail

Dokumentasi pemakaian layanan temporary email internal Skydash.

SkyTempMail menyediakan alamat email sementara yang dapat dibuat dari API, menerima email inbound, lalu membaca pesan melalui API berbasis cookie. Integrasi yang paling aman dan stabil adalah dari backend project yang membutuhkan inbox, bukan dari browser secara langsung.

Endpoint utama

Dashboard : https://mail.skydash.eu.cc
API       : https://mail.skydash.eu.cc/api

Alamat email yang paling direkomendasikan untuk contoh dan testing:

nama@skydash.eu.cc

Daftar domain dapat berubah. Selalu baca GET /api/config sebelum membuat inbox dan gunakan domain yang dikembalikan oleh endpoint tersebut.

Alur integrasi

  1. Panggil GET /api/session dan simpan cookie skytempmail_session di cookie jar.
  2. Panggil POST /api/inboxes untuk membuat alamat baru.
  3. Simpan alamat email beserta cookie jar untuk proses berikutnya.
  4. Poll GET /api/inboxes/{address}/messages sampai pesan masuk.
  5. Setelah selesai, opsional panggil DELETE /api/inboxes/{address} untuk melepas alamat dari daftar session.

Cookie tersebut adalah kredensial bearer anonim untuk daftar inbox. Jangan log, membagikan, atau menyimpan cookie di repository.

Quick start dengan curl

BASE_URL="https://mail.skydash.eu.cc"

# 1. Mulai session dan simpan cookie
curl -fsS -c cookies.txt "$BASE_URL/api/session"

# 2. Lihat domain yang aktif
curl -fsS "$BASE_URL/api/config"

# 3. Buat alamat custom
curl -fsS -b cookies.txt -X POST "$BASE_URL/api/inboxes" \
  -H 'Content-Type: application/json' \
  -d '{"localPart":"uji-aplikasi","domain":"skydash.eu.cc"}'

# 4. Lihat semua alamat pada session ini
curl -fsS -b cookies.txt "$BASE_URL/api/inboxes"

# 5. Baca email (alamat harus URL-encoded)
curl -fsS -b cookies.txt \
  "$BASE_URL/api/inboxes/uji-aplikasi%40skydash.eu.cc/messages"

Untuk alamat random, hilangkan localPart:

curl -fsS -b cookies.txt -X POST "$BASE_URL/api/inboxes" \
  -H 'Content-Type: application/json' \
  -d '{"domain":"skydash.eu.cc"}'

Contoh backend

  • Node.jsfetch, cookie jar sederhana, membuat inbox, dan polling pesan.
  • Pythonrequests.Session, membuat inbox, dan menunggu pesan baru.

Contoh tersebut sengaja tidak memakai API key. SkyTempMail saat ini menggunakan cookie session anonim sehingga project harus menjaga cookie jar miliknya sendiri.

Polling yang disarankan

Jangan request setiap beberapa milidetik. Gunakan interval 35 detik, beri timeout total, dan hentikan polling setelah pesan yang dicari ditemukan.

Contoh aturan praktis:

interval   : 4 detik
timeout    : 2 menit
stop       : subject/sender/code sudah cocok
retry      : backoff ringan jika API 5xx atau jaringan gagal

Respons pesan diurutkan dari yang terbaru. Field utama:

{
  "id": "message-id",
  "inbox_address": "uji-aplikasi@skydash.eu.cc",
  "from_address": "sender@example.com",
  "subject": "Verification code",
  "body": "Your code is 123456",
  "received_at": "2026-08-17 16:00:00"
}

body berisi text part hasil parsing; jika email hanya memiliki HTML part, nilainya dapat berupa HTML mentah. UI SkyTempMail menampilkan HTML melalui iframe sandbox dan tetap menyediakan sumber HTML. Project API sebaiknya memperlakukan body sebagai data tidak tepercaya dan tidak langsung memasukkannya ke innerHTML.

Kontrak endpoint

Dokumentasi lengkap request, response, status error, dan privacy model ada di API.md.

Endpoint Kegunaan Session
GET /api/config Membaca konfigurasi publik dan daftar domain Tidak
GET /api/session Membuat atau melanjutkan session cookie Tidak
GET /api/inboxes List alamat pada session aktif Ya
POST /api/inboxes Membuat alamat baru Ya
GET /api/inboxes/{address}/messages Membaca pesan inbox Ya
DELETE /api/inboxes/{address} Melepas alamat dari session Ya

Error umum

{"error":"Sesi browser tidak tersedia. Muat ulang halaman."}
Status Arti Solusi
400 Local part atau domain tidak valid Baca mailDomains, lalu validasi ulang input
401 Cookie session tidak ada atau tidak valid Panggil /api/session dengan cookie jar yang sama
403 Inbox bukan milik session tersebut Gunakan cookie jar saat inbox dibuat
404 Path API salah Pastikan prefix /api dan URL-encode alamat
5xx Gangguan sementara Retry dengan backoff dan batas waktu

Integrasi lintas domain

API tidak ditujukan untuk dipanggil langsung oleh JavaScript browser dari domain lain. Gunakan server-side request dari project yang membutuhkan temporary email. Dengan begitu cookie session tidak terekspos ke browser pengguna dan project dapat mengontrol timeout, retry, serta pembersihan inbox.

Jika suatu saat dibutuhkan akses browser lintas domain, origin yang diizinkan harus dibuat eksplisit di aplikasi dan cookie/CORS harus ditinjau ulang. Jangan membuka wildcard CORS untuk cookie bearer.

Batasan dan keamanan

  • Inbox bersifat disposable dan dapat terlihat oleh siapa pun yang memegang cookie session.
  • Jangan gunakan untuk password, recovery account, data pribadi, atau rahasia produksi.
  • Jangan commit cookies.txt, cookie header, atau isi email ke git.
  • Perlakukan isi email dan link di dalamnya sebagai untrusted input.
  • Gunakan hanya untuk testing/integrasi yang memang diizinkan oleh layanan tujuan.
  • Domain email harus tetap memiliki routing/catch-all Cloudflare yang aktif; perubahan DNS dapat membuat alamat baru tidak menerima email.

Operasional

Dokumentasi ini mendeskripsikan API publik SkyTempMail di mail.skydash.eu.cc. Source worker berada di CT102 pada /opt/tempik, sedangkan konfigurasi domain live dapat dicek lewat:

curl -fsS https://mail.skydash.eu.cc/api/config

Jika menambah domain, tambahkan domain di konfigurasi worker dan pastikan Cloudflare Email Routing/catch-all untuk domain tersebut menunjuk ke worker tempik sebelum domain dipakai project lain.

Copyright by Skydash.NET.