Geçici e-posta servisleri, kullanıcıların kayıt olmadan kısa süreli e-posta adresleri almasını sağlar. Genellikle '10 dakikalık e-posta' olarak bilinen bu hizmetler, spam'den korunmak veya tek kullanımlık doğrulama kodlarını almak için idealdir. Peki böyle bir servisi sıfırdan kurmak isteyen biri nereden başlamalı? Çoğu eğitim, doğrudan veritabanı şemasına odaklanır. Ancak asıl kritik nokta, e-postaların güvenli ve otomatik olarak silinmesidir. İşte VanishInbox'un kurucusu, bu sorunu Cloudflare Workers ve Upstash Redis kullanarak nasıl çözdüğünü anlatıyor.
Geleneksel bir geçici e-posta servisi, SMTP sunucusu, bir veritabanı ve periyodik temizlik işleri (cron job) gerektirir. Ancak VanishInbox'un mimarisi tamamen farklı: Cloudflare Email Routing, gelen e-postaları doğrudan bir Cloudflare Worker'a yönlendiriyor. Worker, e-postayı ayrıştırıp Upstash Redis'e yazıyor. Her e-posta, 10 dakikalık bir TTL (Time-To-Live) ile saklanıyor. TTL süresi dolduğunda, Redis anahtarı otomatik olarak siliyor. Bu sayede cron job, veritabanı taraması veya manuel temizlik gerekmiyor. Sistem, e-posta geldiğinde çalışıyor, diğer zamanlarda sıfır maliyetle bekliyor.
TTL tabanlı silme yaklaşımı, veri bütünlüğü açısından önemli avantajlar sunuyor. E-posta, depolama katmanının ömrünü aşamıyor; Redis anahtarı süresi dolduğunda veri yok oluyor. Bu, cron tabanlı temizlik işlemlerinde yaşanabilecek 'sessiz hata' riskini ortadan kaldırıyor. Ancak dezavantajı, silme anında herhangi bir işlem yapılamaması (örneğin log tutma veya analiz). Kurucu, bunun bilinçli bir tercih olduğunu ve geçici e-posta servisinin temel vaadi olan 'verinin kalıcı olmaması' ile uyumlu olduğunu belirtiyor.
Uzmanların Görüşleri
E-posta almak için SMTP sunucusu çalıştırmak yerine, Cloudflare Email Routing kullanılıyor. Bu hizmet, DNS/MX seviyesinde gelen e-postaları yakalayıp bir Worker'a iletiyor. Worker, MIME içeriğini (başlıklar, düz metin, HTML, ekler) ayrıştırıp Redis'e yazıyor. Ön yüz (frontend), aynı Redis anahtarını periyodik olarak sorguluyor ve e-posta geldiğinde kullanıcı arayüzünde görüntülüyor. Bu mimari, 'edge computing'in pratik bir örneği: sıfır boşta işlem maliyeti, bakım gerektirmeyen sunucu.
10 dakikalık TTL süresi rastgele seçilmemiş. Kullanıcıların kayıt onayı veya doğrulama kodu alması için yeterli, ancak adresin kalıcı hale gelip spam listelerine eklenmesini önleyecek kadar kısa. Kurucu, 10 dakikanın neredeyse tüm gerçek doğrulama akışlarını kapsadığını ve kötüye kullanımı sınırladığını ifade ediyor.
Servis yayına alındıktan sonra en büyük sorun, botların API'yi hedef alması olmuş. Botlar, otomasyon için çok sayıda adres oluşturmak üzere inbox API'sine saldırmış. Core Web Vitals verileri, botları ayırt etmede yetersiz kalmış. Çözüm olarak Cloudflare Turnstile (görünmez captcha), imzalı kısa ömürlü çerezler ve API'ye hız sınırlaması (10 saniyede 20 istek) eklenmiş. Bazı IP'ler doğrudan engellenmiş. Kurucu, bot korumasının servisle birlikte düşünülmesi gerektiğini vurguluyor.
Sonuç olarak, Cloudflare Workers ve Upstash Redis ile sıfır altyapı maliyeti, otomatik temizlik ve ölçeklenebilir bir geçici e-posta servisi kurmak mümkün. Ancak bot trafiği ve hız sınırlama gibi operasyonel zorluklar, mimari kadar önemli. Bu yaklaşım, 'sunucusuz' kavramını gerçek anlamda uygulamak isteyen geliştiriciler için ilham verici bir örnek.
Kaynak: dev.to