Bir Geçici E-posta Hizmetinin İçinde: Bir E-postanın SMTP'den Ekranınıza Yolculuğu

P

PureTempMail Ekibi

PureTempMail'i geliştiren ve işleten mühendisler

Boru Hattımızı Neden Gösteriyoruz

Tek kullanımlık e-posta hizmetlerinin çoğu birer kara kutudur. Bir adres yazarsınız, e-postalar görünür ve arada ne olduğu hakkında hiçbir fikriniz yoktur — mesajları kim görüyor, nerede saklanıyor, gerçekten siliniyor mu? "Bir geçici e-posta hizmetine güvenebilir miyim?" sorusunun dürüst yanıtı tamamen bu ayrıntılara bağlı olduğundan, PureTempMail'in tam olarak nasıl çalıştığını bileşen bileşen belgelemeye karar verdik.

Aşağıdaki her şey, şu anda bu web sitesine hizmet veren üretim sistemini anlatıyor. Bunu, sistemi kuran ve işleten ekip yazdı — basitleştirilmiş bir pazarlama şeması değil. Nerede bir ödün verdiysek, ne olduğunu ve nedenini söylüyoruz.

Gönderenin posta sunucusu bir SMTP bağlantısı açar
El sıkışma kontrolü — bilinmeyen veya süresi dolmuş adresler reddedilir
Kabul edilen posta bir mesaj kuyruğuna düşer
Ayrıştırma ve sıkı HTML temizliği
Gelen kutunuza gerçek zamanlı iletilir
Gelen bir e-postanın yolculuğu — her aşama bu makalede anlatılıyor.

1. Adım: SMTP El Sıkışması — Çöpün Çoğunun Öldüğü Yer

İnternetteki her e-posta bir SMTP diyaloğu olarak başlar. Sınırımızda, TLS destekleyen göndericiler için TLS etkin olacak şekilde 25 numaralı portu dinleyen güçlendirilmiş bir SMTP sunucusu çalışır. Bir posta sunucusu bağlanıp bir alıcı bildirdiğinde, mesajı körü körüne kabul etmeyiz.

RCPT TO aşamasında — daha mesaj içeriğinin tek bir baytı bile aktarılmadan — alıcı adresini etkin posta kutuları listesiyle karşılaştırırız. O adresi kimse oluşturmadıysa veya posta kutusunun süresi zaten dolduysa, bağlantı anında kalıcı bir SMTP hatasıyla reddedilir. Asla kabul edip sessizce çöpe atmayız. Bu erken ret, bilinçli bir tasarım kısıtını da yansıtır: PureTempMail yalnızca alıcıdır. Bir PureTempMail adresinden e-posta göndermenin hiçbir yolu yoktur; bu da hizmetin spam, oltalama veya taciz için kötüye kullanılamayacağı anlamına gelir.

2. Adım: Alma ile İşleme Arasında Bir Kuyruk

Kabul edilen bir mesaj SMTP sunucusunun içinde ayrıştırılmaz. Bunun yerine ham e-posta bir mesaj kuyruğuna aktarılır ve SMTP diyaloğu hemen sona erer. Nedeni zamanlamadır: gönderen sunucular saniyeler içinde yanıt bekler, oysa ekli büyük bir e-postayı ayrıştırmak çok daha uzun sürebilir. İkisini birbirinden ayırmak, gelen posta patlamalarının asla zaman aşımına veya kayıp mesajlara yol açmaması demektir — kuyruk yükü emer ve bir tüketici sırayla işler.

Bu tüketici, ham MIME yapısını ayrıştırır: konuyu, göndericiyi, HTML ve düz metin gövdelerini ve ekleri çıkarır. Ekler, rastgele üretilmiş adlarla yalıtılmış depolamaya yazılır — asla göndericinin seçtiği dosya adıyla değil; bu da yol manipülasyonuna dayalı bütün bir saldırı sınıfını kapatır. Mesaj üstverileri ve gövdeleri, posta kutusunun son kullanma süresine bağlanarak veritabanına gider.

3. Adım: Pazarlama E-postaları Sizi İzleyemesin Diye HTML Temizliği

HTML e-postası, her gelen kutusunun en tehlikeli parçasıdır. Tipik bir pazarlama mesajı uzak görseller (mesajı ne zaman ve nerede açtığınızı bildiren izleme pikselleri), harici stil sayfaları ve bazen betikler içerir. Bir e-posta size gösterilmeden önce, katı bir beyaz listeye sahip bir HTML temizleyicisinden geçirilir: betikler ayıklanır, harici kaynaklar tamamen kaldırılır ve yalnızca güvenli satır içi stiller hayatta kalır. İzleme pikseli hiçbir zaman yüklenmez; dolayısıyla gönderici mesajın açılıp açılmadığını bilemez.

Bu makale için hazırlanmış örnek pazarlama e-postası: uzaktan yüklenen bir kapak görseli, promosyon amaçlı bir eylem çağrısı düğmesi ve işaretlenmiş gizli bir 1x1 izleme pikseli
Gelen kutusuna tipik olarak nelerin düştüğünü göstermek için hazırladığımız örnek bir pazarlama e-postası: uzak görseller, bir eylem çağrısı ve gizli bir 1×1 izleme pikseli (burada işaretli). PureTempMail tüm uzak içeriği işlemeden önce ayıkladığı için o piksel asla yüklenmez.

Temizlenmiş sonuç, tarayıcınızda tamamen yalıtılmış (sandbox) bir iframe içinde görüntülenir. Temizlikten kötü niyetli bir şey sağ çıksa bile, sandbox onun çevresindeki sayfaya, posta kutusu oturumunuza veya tarayıcınızdaki başka herhangi bir şeye dokunmasını engeller.

4. Adım: Server-Sent Events ile Gerçek Zamanlı Teslim

Çoğu geçici e-posta sitesi sayfayı yenilemenizi ister veya birkaç saniyede bir sunucuyu yoklar. PureTempMail, tarayıcınızdan Server-Sent Events (SSE) ile tek bir uzun ömürlü HTTP bağlantısı açık tutar. Tüketici bir mesajı kaydetmeyi bitirdiği anda bu bağlantıdan bir olay gönderilir ve e-posta gelen kutunuzda belirir — genellikle gönderimden bir ila üç saniye sonra. İki faktörlü doğrulama kodları ve kısa geçerlilik süreli etkinleştirme bağlantıları gibi zamana duyarlı akışlarda bu saniyeler önemlidir.

Bağlantı, kopmuş bağlantıların fark edilmesi için düzenli kalp atışları gönderir ve ağ koparsa istemci üstel geri çekilmeyle otomatik olarak yeniden bağlanır. Aynı olay akışı Android ve iOS uygulamalarımızı da besler; böylece her platform yeni bir mesajı aynı anda görür.

5. Adım: Süre Dolması Gerçek Silme Demektir

Her posta kutusu, ekranda görebileceğiniz bir geri sayımla oluşturulur ve kutu aktifken süreyi uzatabilirsiniz. Süre dolduğunda, birkaç dakikada bir çalışan bir temizlik görevi devreye girer: önce ek dosyaları diskten silinir, ardından posta kutusuna ve tüm mesajlarına ait veritabanı satırları zincirleme kaldırılır.

Arşiv yok, süresi dolan postaların yedeği yok, verileri görünmez biçimde saklayan bir "yumuşak silme" işareti de yok. Bu, yalnızca politikayla değil mimariyle dayatılan veri minimizasyonudur: artık var olmayan bir şeyi teslim edemeyiz, sızdıramayız, kaybedemeyiz.

İşte yolculuğun tamamı — bir SMTP el sıkışması, bir kuyruk, bir ayrıştırıcı, bir temizleyici, bir push olayı ve bir silme görevi. Her aşama, on dakika kullanacağınız bir adresin size sonrasında hiçbir şeye mal olmaması için var. Tek kullanımlık bir e-posta hizmetinin mesajlarınızla şaibeli bir şey yapıp yapmadığını merak ederseniz, ondan boru hattını yayımlamasını isteyin. Biz az önce yaptık.

Bu boru hattının kısa ve teknik olmayan sürümünü mü tercih edersiniz? PureTempMail'in adım adım nasıl çalıştığını görün