[{"data":1,"prerenderedAt":202},["ShallowReactive",2],{"\u002Fid\u002Fblog\u002Ftemporary-email-api-testing-guide":3,"\u002Fid\u002Fblog\u002Ftemporary-email-api-testing-guide-surround":191},{"id":4,"title":5,"authors":6,"badge":12,"body":14,"contentQuality":173,"date":177,"description":178,"extension":179,"image":180,"indexable":182,"locale":183,"meta":184,"navigation":182,"path":185,"reviewedBy":186,"seo":187,"stem":188,"updated":189,"__hash__":190},"postsId\u002Fid\u002Fblog\u002F19.temporary-email-api-testing-guide.md","Cara Menggunakan API Email Sementara Tanpa Membuat Tes yang Tidak Stabil",[7],{"name":8,"to":9,"avatar":10},"Redaksi Once Email","\u002Fid\u002Fabout",{"src":11},"\u002Fimages\u002Fauthors\u002Fdefault-cartoon-author-v2.webp",{"label":13},"pengujian API",{"type":15,"value":16,"toc":163},"minimark",[17,21,29,38,43,46,49,53,56,59,63,66,77,92,96,99,118,121,125,128,136,140,147,150,154,157,160],[18,19,20],"p",{},"Tes email bisa lulus karena alasan yang salah. Kotak masuk bersama mungkin berisi kode kemarin, tidur tetap 10 detik mungkin berfungsi di pagi hari yang tenang, dan percobaan ulang tanpa tenggat waktu dapat membuat pekerja CI sibuk lama setelah aplikasi gagal.",[18,22,23,24,28],{},"Pengujian API email sementara yang andal adalah mesin status kecil: ",[25,26,27],"strong",{},"membuat, memicu, melakukan polling, mencocokkan, menegaskan, dan membersihkan",". Setiap tahap membutuhkan pemilik yang jelas, tenggat waktu, dan bukti yang tidak membocorkan pesan itu sendiri.",[18,30,31,32,37],{},"Sebelum mengotomatiskan alur, gunakan ",[33,34,36],"a",{"href":35},"\u002Fid\u002Fblog\u002Femail-testing-checklist","daftar periksa pengujian email"," yang lebih luas untuk memutuskan perilaku pengiriman, rendering, dan keamanan mana yang termasuk dalam rangkaian pengujian.",[39,40,42],"h2",{"id":41},"berikan-setiap-tes-yang-dijalankan-pada-kotak-masuknya-sendiri","Berikan setiap tes yang dijalankan pada kotak masuknya sendiri",[18,44,45],{},"Buat kotak masuk baru untuk satu pengujian atau satu skenario yang terkait erat. Jangan biarkan pekerja paralel membaca alamat yang sama. Catat pengidentifikasi kotak masuk yang dikembalikan dalam konteks pengujian, bukan hanya alamatnya; permintaan berikutnya harus mengacu pada pengidentifikasi buram tersebut.",[18,47,48],{},"Buat kotak masuk tepat sebelum tindakan mengirim email. Hal ini mempersempit rentang waktu dan mencegah pesan lama memenuhi pernyataan yang lemah. Jika pelari pengujian dapat mencoba kembali pekerjaan yang gagal, sertakan pengidentifikasi proses dalam metadata diagnostik lokal daripada mencoba memilih alamat email yang mudah diingat.",[39,50,52],{"id":51},"memicu-satu-tindakan-yang-dapat-diamati","Memicu satu tindakan yang dapat diamati",[18,54,55],{},"Minta sistem yang diuji untuk melakukan satu tindakan: mengirim tautan konfirmasi, mengirimkan kode masuk, atau mengeluarkan tanda terima. Tangkap permintaan aplikasi atau pengidentifikasi peristiwa ketika menyediakannya. Pengidentifikasi tersebut merupakan bukti yang lebih kuat dibandingkan pencocokan baris subjek saja.",[18,57,58],{},"Jangan menguji sistem pihak ketiga yang tidak diminta. Kotak masuk otomatis ditujukan untuk aplikasi yang Anda miliki atau yang diizinkan untuk dinilai. Ini bukan mekanisme untuk mengolah akun, melewati kontrol platform, atau memantau korespondensi orang lain.",[39,60,62],{"id":61},"jajak-pendapat-dengan-tenggat-waktu-dan-kemunduran","Jajak pendapat dengan tenggat waktu dan kemunduran",[18,64,65],{},"Pengiriman surat tidak sinkron, jadi daftar kosong langsung adalah hal yang normal. Jajak pendapat dengan lembut dan hentikan dengan tegas. Anggaran awal yang berguna adalah tenggat waktu 60 detik dengan waktu tunggu 1, 2, 3, 5, 8, dan kemudian 10 detik. Tambahkan sedikit kegelisahan acak ketika banyak pekerja memulai bersama-sama.",[67,68,74],"pre",{"className":69,"code":71,"language":72,"meta":73},[70],"language-text","deadline = now + 60 seconds\ndelay = 1 second\nwhile now \u003C deadline:\n    messages = list_messages(inbox_id)\n    candidate = find_expected(messages)\n    if candidate exists: return candidate\n    sleep(delay + jitter)\n    delay = min(delay * 1.6, 10 seconds)\nfail(\"expected email did not arrive before deadline\")\n","text","",[75,76,71],"code",{"__ignoreMap":73},[18,78,79,80,83,84,87,88,91],{},"Hormati ",[75,81,82],{},"429 Too Many Requests"," dan nilai ",[75,85,86],{},"Retry-After"," apa pun. Mencoba kembali secara lebih agresif setelah batas kecepatan membuat pengujian lebih kecil kemungkinannya untuk pulih. Coba lagi ",[75,89,90],{},"5xx"," sementara dan kegagalan jaringan hanya dalam tenggat waktu semula; jangan diam-diam mengubah tes satu menit menjadi tes sepuluh menit.",[39,93,95],{"id":94},"cocokkan-transaksinya-bukan-hanya-subjeknya-saja","Cocokkan transaksinya, bukan hanya subjeknya saja",[18,97,98],{},"Baris subjek ditulis untuk orang-orang dan dapat berubah. Lebih suka kombinasi bukti:",[100,101,102,106,109,112,115],"ul",{},[103,104,105],"li",{},"pesan tiba setelah aksi dimulai;",[103,107,108],{},"penerima adalah kotak masuk yang dibuat untuk proses ini;",[103,110,111],{},"domain pengirim diharapkan;",[103,113,114],{},"pengidentifikasi korelasi atau tautan satu kali milik transaksi pengujian;",[103,116,117],{},"tepat ada satu kandidat, atau tes secara eksplisit memilih kandidat terbaru yang valid.",[18,119,120],{},"Perlakukan pesan HTML sebagai masukan yang tidak tepercaya. Jangan menjalankan skrip, memuat gambar jarak jauh, atau membuka tautan di profil penjelajahan normal. Ekstrak URL target, parsing, dan tegaskan tujuan terdaftarnya sebelum klien pengujian terkontrol mengikutinya.",[39,122,124],{"id":123},"jauhkan-rahasia-dari-hasil-pengujian","Jauhkan rahasia dari hasil pengujian",[18,126,127],{},"Kunci API, kode verifikasi, dan tautan ajaib adalah kredensial meskipun berumur pendek. Letakkan kunci API di penyimpanan rahasia CI dan kirimkan dalam header otorisasi. Jangan pernah menempatkannya dalam string kueri, tangkapan layar, file perlengkapan, atau konfigurasi repositori.",[18,129,130,131,135],{},"Jika gagal, metadata yang dibatasi log: akhiran pengidentifikasi kotak masuk, stempel waktu, jumlah pesan, domain pengirim yang disunting, status HTTP, dan ID permintaan. Hindari membuang header, isi, lampiran, atau alamat lengkap. Laporan pengujian yang berguna menjelaskan ",[132,133,134],"em",{},"di mana"," mesin status berhenti tanpa menjadi arsip kotak surat lainnya.",[39,137,139],{"id":138},"bersihkan-di-blok-terakhir","Bersihkan di blok terakhir",[18,141,142,143,146],{},"Penghapusan harus dijalankan baik pernyataan lolos atau gagal. Masukkan pembersihan kotak masuk di ",[75,144,145],{},"finally",", pembongkaran, atau pengait setelah setiap kerangka pengujian. Pembersihan mengurangi retensi yang tidak disengaja, menjaga pengujian selanjutnya tetap terisolasi, dan membuat penggunaan kuota lebih mudah dipahami.",[18,148,149],{},"Jika penghapusan gagal untuk sementara, laporkan secara terpisah dari pernyataan produk. Jangan sembunyikan kegagalan aslinya. Kedaluwarsa sisi server yang terjadwal tetap berharga sebagai penghalang, namun tidak boleh menggantikan pembersihan yang disengaja.",[39,151,153],{"id":152},"rencanakan-kuota-sebelum-melakukan-paralelisasi","Rencanakan kuota sebelum melakukan paralelisasi",[18,155,156],{},"Perkirakan panggilan per skenario: satu pembuatan kotak masuk, beberapa permintaan daftar, satu permintaan detail, dan satu penghapusan. Sepuluh pekerja yang melakukan pemungutan suara setiap detik dapat menghabiskan batas bersama tanpa meningkatkan kecepatan pengiriman. Konkurensi pekerja terikat, bagikan anggaran tarif yang terdokumentasi di seluruh proses pengujian dan tampilkan konsumsi bulanan di dasbor akun.",[18,158,159],{},"Tingkat Pengembang yang direncanakan Once Email memisahkan tunjangan browser gratis dari otomatisasi API. Otentikasi, kesalahan, kuota, dan kontrak harga akan dipublikasikan setelah penanganan kunci langsung, pengukuran, dan pencabutan langganan lulus pengujian produksi. Hal ini menjaga klaim produk tetap selaras dengan kemampuan yang sebenarnya dapat diverifikasi oleh pengguna.",[18,161,162],{},"Tes email terbaik bukanlah tes yang mencoba ulang selamanya. Ini adalah salah satu yang menciptakan kotak masuk yang terisolasi, menunggu dengan sopan, membuktikan bahwa transaksi yang benar telah tiba, mencatat bukti yang aman dan tidak meninggalkan kotak surat.",{"title":73,"searchDepth":164,"depth":164,"links":165},2,[166,167,168,169,170,171,172],{"id":41,"depth":164,"text":42},{"id":51,"depth":164,"text":52},{"id":61,"depth":164,"text":62},{"id":94,"depth":164,"text":95},{"id":123,"depth":164,"text":124},{"id":138,"depth":164,"text":139},{"id":152,"depth":164,"text":153},{"originalAnalysis":174,"trendContext":175,"practicalValue":176},"Kami menelusuri satu pengujian pendaftaran otomatis mulai dari pembuatan kotak masuk hingga jajak pendapat terbatas, pemilihan pesan, pernyataan, dan pembersihan, termasuk bukti kegagalan yang berguna tanpa menyimpan isi pesan.","Tautan dan kode email tetap umum dalam pengujian pendaftaran dan pemulihan otomatis, sementara tugas CI paralel membuat kotak masuk bersama, waktu tidur tetap, jajak pendapat tanpa batas, dan pencatatan isi pesan semakin tidak dapat diandalkan.","Pembaca mendapatkan alur kerja netral penyedia, kodesemu yang dapat dieksekusi, anggaran percobaan ulang terbatas, kebijakan kode status, kriteria pencocokan transaksi, bidang pencatatan log yang aman, dan panduan pembongkaran.","2026-08-08","Desain praktis untuk pengujian API email sementara: mengisolasi setiap proses, melakukan polling dengan backoff, mengidentifikasi pesan yang tepat, melindungi rahasia, dan selalu membersihkan.","md",{"src":181},"\u002Fimages\u002Fblog\u002Ftemporary-email-threat-model-cover.webp",true,"id",{},"\u002Fid\u002Fblog\u002Ftemporary-email-api-testing-guide","Tinjauan editorial Bahasa Indonesia Once Email",{"title":5,"description":178},"id\u002Fblog\u002F19.temporary-email-api-testing-guide","2026-08-09","Elbfr0EHRRDDNJ-13jm3VLfdQ9ELAMoa2reIzIhYYLE",[192,197],{"title":193,"path":194,"stem":195,"description":196,"children":-1},"Kode Verifikasi Email: Cara yang Lebih Aman untuk Menyalin, Memeriksa, dan Menggunakannya","\u002Fid\u002Fblog\u002Femail-verification-code-safety","id\u002Fblog\u002F18.email-verification-code-safety","Perlakukan kode verifikasi email sebagai rahasia berumur pendek: konfirmasikan permintaan, periksa tujuan, salin hanya kodenya dan hapus ketika tugas selesai.",{"title":198,"path":199,"stem":200,"description":201,"children":-1},"Email Verifikasi Tidak Tiba? Daftar Periksa Pemecahan Masalah yang Aman","\u002Fid\u002Fblog\u002Fanxiety","id\u002Fblog\u002F2.anxiety","Atasi kesalahan alamat, penundaan pengirim, percobaan ulang, pemfilteran, dan batas kotak surat tanpa berulang kali meminta kode atau melemahkan keamanan akun.",1786218433051]