Memulai

Berapa lama inbox sekali pakai bertahan, dan apa yang hilang

5 hari untuk sebuah pesan dan sama sekali tidak ada batas untuk alamatnya — dua jawaban berbeda untuk sesuatu yang kedengarannya seperti satu pertanyaan. Berikut ini tempat jamnya mulai berjalan, semua yang ikut pergi saat suratnya pergi, dan kenapa tidak satu pun bisa dikembalikan.

  • Pemula
  • 15 menit baca
Sebuah jam pasir abu-abu terang dengan amplop biru di ruang atasnya dan pasir biru yang sudah terkumpul di bawah, di samping kotak surat abu-abu yang tertutup

Jawaban singkatnya, dan separuh yang mengejutkan orang

5 hari. Itulah keseluruhan jawaban yang dicari kebanyakan orang, dan ada baiknya bersikap tepat soal jawaban itu untuk apa: sebuah pesan bisa dibaca selama 5 hari. Alamat tempatnya mendarat sama sekali tidak kedaluwarsa, karena tidak ada apa pun di sana yang bisa kedaluwarsa.

12345dapat dibaca — 5 haridi disk, tak terbacapesan tibatenggatnyaTenggat diperiksa pada setiap pembacaan. Byte-nya pergi sesudahnya, dan tak ada yang menunggu itu.
Satu jendela, dua momen: pesannya berhenti bisa dibaca persis pada tenggatnya, dan byte-nya dibebaskan beberapa waktu sesudah itu.

Itu dua hal yang berbeda, dan mencampuradukkan keduanya menghasilkan dua keluhan yang sama-sama sering kami terima — "alamat saya berhenti bekerja", padahal tidak, dan "bisakah ini disimpan lebih lama", padahal tidak ada tuas apa pun yang bisa ditarik.

Sebuah pesan
Bisa dibaca selama 5 hari sejak stempel waktunya sendiri, lalu hilang. Isi, header, pratinjau, dan lampiran apa pun, semuanya pada saat yang sama.
Sebuah alamat
Tidak kedaluwarsa, karena tidak ada catatan apa pun tentangnya yang disimpan. Itu cuma sebuah string. Alamat itu bekerja saat pertama kali dipakai dan tetap bekerja setahun kemudian.
Sebuah kotak surat
Baris yang menghitung satu alamat dibuat oleh pesan pertama yang mendarat di situ, dan dihapus saat pesan terakhirnya pergi. Anda sendiri tidak pernah membuat atau menghapusnya.

Satu jendela, sama untuk semua orang: gratis atau berbayar, domain publik atau domain Anda sendiri. Ini bukan fitur paket, dan tidak ada pengaturan di mana pun yang bisa mengubahnya.

Kapan jamnya sebenarnya mulai berjalan

Tenggatnya dihitung sekali saja, saat pesan diantarkan, lalu dituliskan ke baris di sampingnya. Tidak ada apa pun yang menghitungnya ulang sesudah itu — tidak ada kebijakan yang diperiksa saat Anda membaca, tidak ada paket yang dicek, dan tidak ada jam yang mulai lagi dari nol cuma karena Anda membuka sesuatu.

Yang penting untuk diketahui adalah dihitung dari mana. Sebuah pesan membawa header Date-nya sendiri, yang ditulis oleh apa pun yang mengirimkannya, dan itulah awal dari 5 hari itu — tapi cuma selama header itu masuk akal.

  1. Header-nya berada dalam rentang satu hari dari sekarang. Header itu diterima apa adanya. Hampir semua pesan berada dalam kondisi ini, dan untuk pesan-pesan itu jendelanya berjalan 5 hari sejak momen pengirimnya menekan tombol kirim.
  2. Header-nya lebih jauh dari itu, ke arah mana pun. Header itu diabaikan dan waktu kedatangannya dipakai sebagai gantinya. Seorang pengirim bisa menulis tanggal apa saja sesukanya, termasuk tanggal di abad berikutnya, dan pesan yang tidak pernah kedaluwarsa akan jadi pesan yang tidak pernah benar-benar terkirim.
  3. Sama sekali tidak ada header yang bisa dipakai. Sama saja: waktu kedatangan yang dipakai.

Ini cuma bisa merugikan Anda beberapa jam, dan cuma bisa berjalan satu arah — sebuah pesan mungkin tiba dengan sisa waktu sedikit kurang dari 5 hari, tidak pernah lebih. Sesuatu yang mengantre di suatu tempat selama dua puluh jam sebelum sampai ke kami akan muncul dengan sisa waktu sekitar empat hari empat jam.

Apa yang ikut hilang, dan apa yang tetap ada

Saat sebuah pesan mencapai tenggatnya, semua yang menjadi miliknya hilang sekaligus. Tidak ada apa pun yang ditahan di tabel lain, dan tidak ada yang bertahan dalam bentuk ringkas — tidak ada sisa, tidak ada baris subjek yang disimpan sebagai catatan, tidak ada thumbnail dari sebuah berkas.

ApaApa yang terjadi padanyaKapan
PesannyaTeks, HTML, header, dan pratinjau, dihapus bersamaan.Pada tenggatnya
LampirannyaDihapus dari disk sekaligus dari basis data. Sebuah berkas cuma bisa dijangkau lewat pesan yang membawanya, jadi berkas itu tidak bisa bertahan lebih lama daripada pesannya.Bersama pesannya
Tanda sudah dibacaItu cuma kolom pada pesannya, bukan sesuatu yang berdiri sendiri. Ia hilang saat barisnya hilang.Bersama pesannya
Catatan kotak suratBaris yang menghitung isi satu alamat dihapus begitu pesan terakhir di dalamnya hilang. Baris itu ada karena surat pernah masuk; ia tidak bertahan lebih lama daripada suratnya.Bersama pesan terakhirnya
AlamatnyaTidak ada yang perlu dihapus. Alamat itu tidak pernah disimpan sebagai sesuatu yang bisa ada atau berhenti ada.Tidak pernah
Alias yang pernah membawa suratDisimpan. Itu jejak yang menunjukkan layanan mana yang diberi alamat yang mana, dan itu lebih berharga daripada biaya menyimpan barisnya.Tidak pernah
Alias yang tidak pernah membawa suratDibuang setelah 5 hari tanpa aktivitas — lalu dihitung ulang, persis sama, saat alamatnya dipakai lagi. Sebuah alias diturunkan dari alamatnya, bukan ditetapkan padanya, jadi membuang yang tidak dipakai tidak menghilangkan apa pun.Setelah 5 hari tanpa aktivitas
Record MX domain Anda sendiriMilik Anda, di DNS Anda, tidak tersentuh oleh semua ini. Retensi ini soal suratnya, bukan soal peruteannya.Tidak pernah

Berkas lampiran diputus tautannya sebelum barisnya sendiri dihapus, dan urutan ini disengaja: kalau terjadi crash di tengah-tengahnya, yang tersisa cuma baris yang berkasnya sudah hilang, dan itu dibereskan pada putaran berikutnya. Urutan sebaliknya akan meninggalkan berkas yang tidak ditunjuk oleh apa pun, dan tidak akan pernah ada yang datang mengambilnya kembali.

Tak terbaca dulu, terhapus belakangan

Itu dua peristiwa, dan keduanya bukan peristiwa yang sama. Cuma yang pertama yang berjalan sesuai jadwal yang bisa diandalkan, dan cuma itu pula yang bisa Anda amati.

Setiap pembacaan di sini disaring oleh tenggatnya. Menampilkan isi kotak surat, membuka satu pesan, mengunduh satu lampiran — ketiganya membawa syarat yang sama, dan pesan yang sudah lewat jendelanya tidak akan cocok dengan satu pun dari ketiganya. Tidak ada jeda waktu di mana suratnya "secara teknis masih ada di sana": begitu kedaluwarsa, ia langsung hilang dari halaman kotak masuk, dari API, dan dari server MCP pada saat yang sama.

Yang terjadi sesudahnya cuma beres-beres. Sebuah pembersihan lewat dan membebaskan baris serta berkasnya, dalam kelompok terbatas, dengan kecepatan yang dipilih supaya membereskan tunggakan tidak pernah membuat pengiriman yang masih aktif mengantre di belakangnya. Secepat atau selambat apa pun pembersihan itu sampai ke sebuah pesan tertentu, tidak ada yang berubah dan bisa dilihat siapa pun.

Tenggatnya
Syarat pada setiap query yang bisa mengembalikan sebuah pesan. Persis, dan sama di kotak masuk, di API, dan di server MCP, karena ketiganya menanyakan pertanyaan yang sama.
Pembersihannya
Pekerjaan terbatas yang membebaskan apa pun yang sudah tidak terjangkau. Bukan sesuatu yang ditunggu oleh pembaca mana pun, dan bukan pula hal yang menentukan bisa tidaknya Anda membaca sesuatu.

Itulah sebabnya jawaban untuk "apakah ini dihapus atau cuma disembunyikan?" adalah "keduanya, dalam urutan itu" — dan kenapa tidak ada bedanya yang mana dari keduanya yang sudah terjadi pada saat Anda bertanya.

Membaca tenggat langsung dari pesannya

Anda tidak pernah perlu menghitung sendiri tanggalnya. Setiap pesan yang dikembalikan API membawa tenggat yang diberikan padanya saat pengantaran, sebagai stempel waktu ISO 8601 dalam UTC.

shell
$ curl -sG https://grabmail.io/api/v1/mailbox \
  --data-urlencode "address=you@grabmail.io"

Setiap pesan dalam responsnya membawa kedua ujung jendelanya sendiri:

respons
{
  "id": "01k4h2v9r7m3d8f0b6n5c1qtzx",
  "from": "no-reply@example.com",
  "subject": "Confirm your email address",
  "date": "2026-09-01T09:00:00+00:00",
  "seen": false,
  "attachments": 0,
  "expires_at": "2026-09-06T09:00:00+00:00"
}

date adalah titik awal jamnya dan expires_at adalah titik berhentinya. Kurangkan satu dari yang lain dan Anda selalu mendapat 5 hari, setiap saat — cara tercepat untuk meyakinkan diri sendiri bahwa tidak ada apa pun yang Anda lakukan di antaranya yang mengubah sesuatu.

expires_at
Momen saat pesannya berhenti bisa dibaca. Absolut, dalam UTC, dengan offset yang dituliskan lengkap, bukan cuma sebagai huruf Z di akhir.
date
Stempel waktu pesan itu sendiri — dipercaya kalau berada dalam rentang satu hari dari kedatangannya, diam-diam diganti dengan waktu kedatangan kalau tidak.

Minta sebuah pesan yang sudah lewat tenggatnya, dan Anda akan mendapat jawaban yang persis sama seperti untuk pesan yang memang tidak pernah ada:

respons
{"error":"not_found","message":"no such message in that mailbox, or it has expired"}

API-nya tidak akan bilang yang mana dari keduanya, dan itu bukan kelalaian. Membedakan keduanya akan mengubah 404 menjadi cara untuk memastikan bahwa suatu id tertentu pernah benar-benar ada, dan itu pertanyaan yang seharusnya tidak bisa diajukan siapa pun di luar kotak suratnya.

Menyimpan hal yang sebenarnya Anda cari

Hampir tidak ada yang mendarat di alamat sekali pakai perlu bertahan lebih lama daripada alamatnya. Segelintir pengecualian ini layak diurus dengan sengaja, bukan ditemukan begitu saja di hari keenam.

  1. Kode, tautan, atau kata sandi sementara. Pakai sekarang juga. Ini justru hal-hal berumur paling pendek dalam pesannya — kebanyakan tautan konfirmasi berhenti bekerja jauh sebelum 5 hari habis, dan suratnya bertahan lebih lama daripada tautannya adalah hal yang biasa, bukan sebaliknya.
  2. Berkas. Unduh selagi pesannya masih ada. Satu pesan utuh dibatasi hingga 5 MB, jadi ini tidak pernah jadi operasi besar, dan berkasnya hilang pada saat yang persis sama dengan pesannya.
  3. Kuitansi atau faktur. Satu-satunya kasus di mana alamat sekali buang memang bukan alat yang tepat. Simpan di tempat Anda biasa menyimpan sesuatu, atau pakai alamat yang memang Anda simpan.
  4. Apa pun yang dihasilkan test suite. Lakukan assert di dalam run yang menghasilkannya. Tugas yang membaca kotak surat dari run kemarin adalah tugas yang jadi tidak stabil pada hari Senin pertama setelah libur panjang.
  5. Bukti apa yang dikirim sebuah layanan kepada Anda. Keluarkan dari kotak masuk pada hari itu juga saat tiba. Tidak ada fitur ekspor di sini, dan tidak ada apa pun yang dicatat dua kali.

Menghapus lebih awal, dan kenapa sebuah skrip sebaiknya melakukannya

Menunggu bukan satu-satunya cara sebuah pesan untuk pergi. Satu panggilan menghapus satu pesan, dan itu berlaku seketika, bukan menunggu pembersihan yang datang belakangan.

shell
$ curl -sX DELETE -G https://grabmail.io/api/v1/message/01k4h2v9r7m3d8f0b6n5c1qtzx \
  --data-urlencode "mailbox=you@grabmail.io"

Bagi seseorang, itu soal kerapian. Bagi sebuah skrip, itu lebih dekat ke pembukuan: kotak surat yang kosong adalah pernyataan paling sederhana bahwa semua yang pernah ada di situ sudah dibereskan, dan tidak ada biaya untuk menjaganya tetap benar. Alternatifnya — daftar id yang sudah diproses — adalah daftar yang harus disimpan di suatu tempat, dituliskan di suatu tempat, dan dibersihkan di suatu tempat.

Ini tidak mengubah apa pun soal jendela pada hal lainnya, dan memang tidak perlu: apa pun yang Anda tinggalkan akan hilang dengan sendirinya.

Menghapus pesan terakhir dalam sebuah kotak surat menghapus catatan kotak suratnya juga, persis seperti yang akan dilakukan kedaluwarsa. Tidak ada beda pada keadaan akhirnya antara menghapus sebuah pesan dan menunggunya kedaluwarsa — bedanya cuma soal kapan.

Kenapa 5 hari dan bukan tiga puluh

Alasan jujurnya bukan soal penyimpanan. Ini soal: pada domain publik, alamatnya adalah rahasianya — siapa pun yang tahu alamatnya bisa membaca kotak suratnya, dan justru sifat itulah yang membuat Anda bisa memakainya tanpa akun, tanpa kata sandi, atau tanpa email Anda sendiri untuk konfirmasi. Karena itu, retensi bukan tombol kemurahan hati. Itu ukuran radius ledakannya.

  • 5 hari sudah cukup panjang untuk semua hal yang memang jadi tujuan layanan ini: kode konfirmasi, tautan unduhan, satu run pengujian, kuitansi yang sedang akan Anda pindahkan ke tempat lain.
  • Ini cukup singkat sehingga alamat yang Anda ketikkan ke sebuah formulir pada bulan Maret tidak lagi menyimpan apa pun di bulan April, siapa pun lagi yang sejak itu diberi alamat yang sama.
  • Ini sama untuk semua orang, jadi tidak ada konfigurasi yang bisa salah dan tidak ada paket di mana surat Anda diam-diam bertahan lebih lama daripada yang Anda kira.

Kalau Anda ingin alamatnya tetap jadi rahasia juga, itulah gunanya alias: bagikan aliasnya, baca dari alamatnya. Siapa pun yang mencoba aliasnya akan menemukan kotak surat kosong, selalu, dan panduan mendaftar tanpa alamat asli Anda menjabarkan triknya secara lengkap.

Dan kalau yang Anda inginkan adalah jendela yang lebih panjang untuk surat yang Anda kendalikan sendiri, jawabannya adalah kotak surat yang Anda kendalikan sendiri, bukan pengaturan yang lebih panjang di sini. Mengarahkan domain Anda sendiri ke layanan ini pun tidak mengubah jendelanya — itu mengubah siapa yang memiliki alamat-alamatnya, dan itu hal berbeda yang lebih baik untuk dibereskan.

Saat pesannya sudah hilang

Tidak ada apa pun yang bisa dicoba. Ini layak dikatakan secara terus terang, karena setiap layanan surat lain yang pernah Anda pakai punya tempat sampah di suatu sudutnya, dan refleksnya adalah mencari tempat sampah yang satu ini.

Tidak ada arsip
Tidak ada apa pun yang disalin ke mana pun saat pesannya pergi.
Tidak ada tempat sampah
Tidak ada keadaan di antara bisa dibaca dan hilang, dan tidak ada apa pun yang menahan sebuah pesan untuk sementara waktu.
Tidak ada tiket
Tidak ada tindakan operator yang bisa mengembalikan pesan yang sudah kedaluwarsa. Setiap jalur yang bisa membaca sebuah pesan membawa tenggat yang sama, termasuk jalur yang akan kami pakai sendiri.

Hal yang benar-benar layak dilakukan adalah cara yang biasa: minta lagi ke pengirimnya. Email verifikasi, tautan unduhan, dan kuitansi semuanya hal yang akan diterbitkan ulang oleh sebuah layanan kalau diminta, biasanya dari halaman yang sama tempat Anda sudah berada. Buka dulu alamat baru kalau alamat lamanya sudah tersebar ke mana-mana.

Dan kalau yang Anda tunggu memang tidak pernah datang sejak awal, ini halaman yang salah — panduan tentang surat yang tidak pernah sampai menjelaskan penyebab-penyebabnya dalam urutan yang layak diperiksa, dimulai dari yang cuma butuh sepuluh detik.

Dalam praktiknya

Semuanya, sebagai kebiasaan kerja:

  1. Buka sebuah alamat dan pakai. Tidak ada yang perlu diaktifkan dan tidak ada yang mulai menghitung mundur.
  2. Lakukan hal yang membuat Anda membukanya — kodenya, tautannya, berkasnya — selagi Anda masih ada di sana.
  3. Keluarkan apa pun yang ingin Anda simpan dari kotak masuk pada hari itu juga saat tiba.
  4. Kalau sebuah skrip yang membacanya, bercabanglah berdasarkan expires_at, bukan berdasarkan jumlah percobaan ulang.
  5. Hapus apa yang sudah selesai Anda urus, kalaupun cuma supaya kotak suratnya menunjukkan apa yang masih tersisa untuk dikerjakan.
  6. Kembali ke alamat yang sama kapan pun Anda mau. Alamat itu akan tetap ada, dan akan kosong.

Baris terakhir itulah yang perlu diingat. Alamatnya permanen dan suratnya tidak, kebalikan dari setiap kotak masuk yang sudah Anda miliki — dan itulah keseluruhan alasan kenapa yang ini tidak memungut biaya dan tidak meminta apa pun.

Pertanyaan

Bisakah saya mendapatkan kembali sebuah pesan setelah 5 hari?

Tidak bisa. Tidak ada arsip, tidak ada tempat sampah, dan tidak ada tindakan operator yang bisa mengembalikannya — setiap jalur yang bisa membaca sebuah pesan membawa tenggat yang sama, jadi tidak ada tempat mana pun bagi pesan itu untuk kembali.

Apakah membuka atau membaca sebuah pesan mengatur ulang jamnya?

Tidak. Tenggatnya dituliskan sekali saja, saat pengantaran, dan tidak ada apa pun yang menghitungnya ulang. Membaca, menandai sudah dibaca, memuat ulang halaman, dan menampilkan isi kotak surat lagi, semuanya membiarkan tenggat itu persis di tempat semula.

Apakah alamatnya kedaluwarsa kalau saya berhenti memakainya?

Tidak, karena alamatnya tidak disimpan sebagai sesuatu yang bisa kedaluwarsa. Sebuah alamat baru menjadi baris selama ada surat di dalamnya, dan baris itu hilang saat suratnya hilang. Ketik alamat yang sama lagi enam bulan kemudian dan alamat itu tetap bekerja — kosong, dan siap Anda pakai.

Bisakah saya membayar untuk retensi yang lebih panjang?

Tidak bisa. Cuma ada satu jendela dan itu sama untuk setiap alamat, setiap domain, dan setiap paket. Ini bukan pengaturan di mana pun, dan bukan sesuatu yang bisa dinaikkan oleh dukungan pelanggan untuk satu akun saja.

Apakah lampiran bertahan selama pesannya?

Persis sama lamanya, tidak lebih. Sebuah berkas cuma bisa dijangkau lewat pesan yang membawanya, dan keduanya hilang pada saat yang sama. Panduan tentang lampiran membahas batas ukurannya dan cara mengeluarkan sebuah berkas selagi masih ada.

Bagaimana kalau tanggal dari pengirimnya salah?

Header Date yang lebih dari satu hari jaraknya dari momen kedatangan pesan akan diabaikan, dan waktu kedatangannya dipakai sebagai gantinya. Jadi tanggal yang salah paling parah cuma bisa merugikan sebuah pesan beberapa jam dari jendelanya; itu tidak akan pernah memperpanjangnya.

Apakah surat saya dihapus, atau cuma disembunyikan setelah tenggatnya?

Keduanya, dalam urutan itu. Suratnya berhenti bisa dibaca pada tenggatnya, yang merupakan syarat pada setiap query, dan byte-nya dibebaskan sesudahnya oleh sebuah pembersihan yang tidak ditunggu siapa pun. Tidak satu pun dari kedua keadaan itu bisa Anda ambil apa pun darinya.

Apakah menghapus sebuah pesan membebaskan alamatnya seketika?

Pesannya hilang seketika, dan catatan kotak suratnya ikut hilang bersama pesan terakhir di dalamnya. Tapi alamatnya sendiri memang tidak pernah ditahan sejak awal, jadi tidak ada yang perlu dibebaskan — alamat itu tersedia untuk Anda sepanjang waktu, dan untuk siapa pun lain yang berhasil menebaknya.

Bagaimana cara menjaga sebuah kotak surat tetap aktif untuk pengujian yang berjalan lama?

Anda tidak perlu: alamatnya tidak butuh dijaga tetap aktif, cuma suratnya yang kedaluwarsa. Yang sebenarnya dibutuhkan oleh test suite yang panjang adalah alamat baru untuk setiap run, dan itulah yang dibangun oleh panduan menguji alur verifikasi — kotak surat yang dipakai bersama lintas hari adalah kotak surat di mana pesan kemarin masih cocok dengan assertion hari ini.

Coba selagi masih segar

Alamat hanya perlu satu klik, tanpa akun dan tanpa kartu. Semua yang ada di panduan ini langsung berfungsi dengannya.

Selamat datang kembali

Kotak surat dan domain Anda, di satu tempat.