28 Ara 2024·6 dk okuma

Çalışan işlemsel e‑posta akışları: tokenlar, sınırlar, teslimat

İşlemsel e‑posta akışları için doğrulama, davet ve sihirli bağlantı e‑postalarını güvenli tokenlar, net sona erme, yeniden gönderme sınırları ve hızlı teslimat kontrolleri ile tasarlayın.

Çalışan işlemsel e‑posta akışları: tokenlar, sınırlar, teslimat

Doğrulama ve sihirli bağlantılar gerçek hayatta neden başarısız olur

Çoğu kırılmış kayıt ve oturum açma deneyimi "kötü e‑posta" yüzünden olmaz. Başarısızlıklar, sistemin normal insan davranışlarını idare edememesinden kaynaklanır: insanlar iki kere tıklar, bağlantıları başka bir cihazda açar, çok uzun bekler veya gelen kutusunda arayıp eski mesajı kullanır.

Bu hatalar küçük görünür ama birikir:

  • Bağlantılar çok kısa sürede sona erer (veya hiç sona ermez).
  • Tokenlar kazara yeniden kullanılır (birden çok tıklama, birden çok sekme, iletilen e‑postalar).
  • E‑postalar gec gelir, spam'e düşer veya hiç ulaşmaz.
  • Kullanıcı yanlış adres yazmıştır ve uygulama net bir sonraki adım sunmaz.
  • Yeniden gönder düğmesi sisteminizi (ve e‑posta sağlayıcınızı) spamlemek için bir yol haline gelir.

Bu akışlar haber bültenlerinden daha yüksek risklidir çünkü tek bir tıklama hesap erişimi verebilir veya kimliği doğrulayabilir. Pazarlama e‑postası gecikirse rahatsız edicidir; sihirli bağlantı gecikirse kullanıcı giriş yapamaz.

Ekipler güvenilir işlemsel e‑posta akışlarından bahsettiğinde genelde üç şeye atıfta bulunurlar:

  1. Güvenli: bağlantılar tahmin edilemez, çalınamaz veya güvensiz şekillerde yeniden kullanılamaz.

  2. Öngörülebilir: kullanıcılar her zaman ne olduğunu (gönderildi, süresi doldu, zaten kullanıldı, yanlış e‑posta) ve bir sonraki adımı bilir.

  3. İzlenebilir: günlükler ve açık durum kontrolleriyle “bu e‑posta'ya ne oldu?” sorusuna yanıt verebilirsiniz.

Çoğu ürün aynı temel akışları kurar: e‑posta doğrulama (sahipliği kanıtlama), davetler (bir çalışma alanına/porta davet) ve sihirli bağlantılar (parolasız oturum açma). Yol haritası aynıdır: net kullanıcı durumları, sağlam token tasarımı, makul sona erme kuralları, yeniden gönderim limitleri ve temel teslimat görünürlüğü.

Basit bir akış haritası ve net kullanıcı durumlarıyla başlayın

Güvenilir işlemsel e‑posta akışları kağıt üzerinde başlar. Kullanıcının neyi kanıtladığını ve tıkladıktan sonra sisteminizde neyin değiştiğini açıklayamıyorsanız, akış kenar durumlarda kırılır.

Küçük bir kullanıcı durumu kümesi tanımlayın ve bunlara destek hızlı anlayabilsin diye isim verin:

  • Yeni (hesap oluşturuldu, doğrulanmadı)
  • Davet edildi (davet gönderildi, kabul edilmedi)
  • Doğrulandı (e‑posta sahipliği onaylandı)
  • Kilitli (risk veya çok fazla deneme nedeniyle geçici olarak engellendi)

Sonra her e‑postanın neyi kanıtladığına karar verin:

  • Doğrulama e‑posta sahipliğini kanıtlar.
  • Davet gönderenin belirli bir şeye erişim verdiğini kanıtlar.
  • Sihirli bağlantı, giriş anında gelen kutusunu kontrol ettiğini kanıtlar. E‑posta adresini sessizce değiştirmemeli ya da yeni ayrıcalıklar sağlamamalıdır.

Ardından tıklamadan başarıya giden minimum yolu haritalayın:

  • Kullanıcı bağlantıya tıklar.
  • Uygulamanız tokenı doğrular ve mevcut durumu kontrol eder.
  • Tam olarak bir durum değişikliği uygularsınız (örneğin Davet Edildi -> Aktif).
  • Kullanıcıya uygulamayı açma, devam etme veya parola belirleme gibi bir sonraki eylemi gösteren basit bir başarı ekranı sunarsınız.

“Zaten yapılmış” durumlar için baştan plan yapın. Birisi bir davete iki kez tıklarsa “Davet zaten kullanıldı” gösterin ve oturum açmaya yönlendirin. Bir doğrulama bağlantısına zaten doğrulanmışken tıklarlarsa, hatayı atmaktansa onların iyi olduğunu onaylayıp ileri yönlendirin.

Birden fazla kanal (örneğin e‑posta artı SMS) destekliyorsanız, kullanıcıların akışlar arasında takılmaması için durumları ortak tutun.

Token tasarımının temelleri (ne saklanmalı, neyden kaçınmalı)

İşlemsel e‑posta akışları genellikle token tasarımı yüzünden başarılı ya da başarısız olur. Token, tek bir eyleme izin veren geçici anahtardır: e‑postayı doğrulamak, daveti kabul etmek veya oturum açmak.

Üç gereksinim çoğu problemi kapsar:

  • Tokenın tahmin edilememesi için güçlü rastgelelik.
  • Davanın net olması; örneğin bir davet tokenı giriş veya parola sıfırlama için yeniden kullanılamamalı.
  • Eski e‑postaların kalıcı arka kapı olmaması için sona erme süresi.

Opaque (opak) vs imzalı tokenlar

Opak token çoğu ekip için en basitidir: uzun bir rastgele dize üretin, sunucuda saklayın ve kullanıcı tıkladığında bakıp eşleştirin. Tek kullanımlık ve sade tutun.

İmzalı token (imza içeren kompakt bir dize) her tıklamada veritabanı sorgusundan kaçınmak veya token içinde yapısal veri taşımak istediğinizde faydalı olabilir. Ancak maliyeti karmaşıklıktır: imza anahtarları, doğrulama kuralları ve temiz bir iptal hikâyesi gerekir. Birçok işlemsel e‑posta akışı için opak tokenlar düşünmesi ve iptal etmesi daha kolaydır.

URL'e kullanıcı verisi koymaktan kaçının. E‑posta adresleri, kullanıcı kimlikleri, roller veya kişinin kim olduğunu/hangi erişimi olduğunu açığa çıkaran hiçbir şey eklemeyin. URL'ler kopyalanır, günlüklenir ve bazen paylaşılır.

Tokenları tek kullanımlık yapın. Başarılı olduktan sonra tokenı tüketilmiş olarak işaretleyin ve sonraki denemeleri reddedin. Bu, iletilen e‑postalar ve eski tarayıcı sekmeleri karşısında sizi korur.

Sorunları tahmin etmeden çözmek için yeterli meta veriyi saklayın:

  • purpose (verify, invite, magic link login)
  • created_at ve expires_at
  • used_at (tüketilene kadar null)
  • oluşturma ve kullanım sırasında istek IP'si ve user agent
  • status (aktif, tüketildi, süresi doldu, iptal edildi)

Eğer no‑code bir araç kullanıyorsanız, bu genelde Data Designer'da bir Tokens tablosuna temizce eşlenir ve tüketme adımı tek bir Business Process içinde atomik olarak yapılır.

Güvenlik ve kullanıcı sabrını dengeleyen sona erme kuralları

Sona erme, bu akışların ya güvensiz (çok uzun) ya da sinir bozucu (çok kısa) hissettiği yerdir. Süreyi riske ve kullanıcının yapmak istediğine göre eşleştirin.

Pratik bir başlangıç noktası:

  • Sihirli oturum açma bağlantısı: 10–20 dakika
  • Parola sıfırlama: 30–60 dakika
  • Çalışma alanı/ekibe davet: 1–7 gün
  • Kayıttan sonra e‑posta doğrulama: 24–72 saat

Kısa süreler yalnızca süresi dolmuş deneyimi nazikse işe yarar. Token artık geçersizse bunu açıkça söyleyin ve tek bir bariz eylem sunun: yeni bir e‑posta isteyin. "Geçersiz bağlantı." gibi belirsiz hatalardan kaçının.

Saat sorunları cihazlar ve kurumsal ağlar arasında sizi ısırabilir. Doğrulamayı sunucu zamanına göre yapın ve gecikmelerden kaynaklanan yanlış başarısızlıkları azaltmak için çok küçük bir hoşgörü penceresi (1–2 dakika) düşünün. Hoşgörüyü küçük tutun ki gerçek bir güvenlik açığı olmasın.

Yeni bir token verdiğinizde eski tokenları geçersiz kılıp kılmamaya karar verin. Sihirli bağlantılar ve parola sıfırlamalarda genelde en yeni token kazanmalı. E‑posta doğrulamasında eski tokenları iptal etmek, "hangi e‑postayı tıklamalıyım?" kafa karışıklığını da azaltır.

Kullanıcıyı rahatsız etmeyen yeniden gönderme limitleri ve oran sınırlama

Üretime hazır kaynak kodu oluştur
No‑code içinde kalırken üretime hazır Go, Vue3 ve native mobil kodu üretin.
Builder'ı Deneyin

Yeniden gönderme limitleri suistimali önler, maliyetleri azaltır ve etki alanınızın şüpheli ani artışlardan kaçınmasına yardım eder. Ayrıca kullanıcı bulamıyor diye sürekli Yeniden Gönder'e basılınca oluşan döngüleri de engeller.

İyi limitler birden fazla eksende çalışır. Sadece kullanıcı hesabına göre limit koyarsanız saldırgan e‑posta rotasyonu yapar. Sadece e‑posta adresine göre limit koyarsanız IP rotasyonu yapar. Kontrolleri birleştirin ki normal kullanıcılar nadiren fark etsin fakat suistimal pahalı olsun.

Birçok ürün için yeterli olan koruyucular:

  • Kullanıcı başına cooldown: aynı eylem için gönderimler arasında 60 saniye
  • E‑posta adresi başına cooldown: 60–120 saniye
  • IP oran limiti: küçük bir ani yüke izin verin, sonra yavaşlatın (özellikle kayıt sırasında)
  • E‑posta adresi başına günlük üst limit: 5–10 gönderim (doğrulama, sihirli bağlantı veya davet dahil)
  • Kullanıcı başına günlük üst limit: tüm e‑posta eylemlerinde 10–20 gönderim

Bir limit tetiklendiğinde UX metni arka uç kadar önemlidir. Net ve sakin olun.

Örnek: "[email protected] adresine Az önce e‑posta gönderdik. Başka bir tane 60 saniye içinde isteyebilirsiniz." Eğer yardımcıysa ekleyin: "Spam veya promosyon klasörünü kontrol edin ve 'Giriş linki' konu başlığını arayın."

Günlük limit dolduysa, ölü bir Yeniden Gönder düğmesi göstermeyin. Onun yerine bir mesaj koyun ve sonraki adımı açıklayın (yarın tekrar deneyin ya da adresi güncellemek için destek ile iletişime geçin).

Bunu görsel bir iş akışında uyguluyorsanız, limit kontrollerini tek bir paylaşılan adımda tutun ki doğrulama e‑postaları, davetler ve sihirli bağlantılar tutarlı davransın.

İşlemsel e‑posta için teslimat kontrolleri

Çoğu “hiç ulaşmadı” bildirimi aslında “ne olduğunu söyleyemiyoruz” demektir. Teslimat, gecikmeleri, bounce'ları ve spam filtrelemesini ayırt edebilmeniz için görünürlükle başlar.

Her gönderim için hikâyeyi daha sonra yeniden oynatmaya yetecek kadar detay kaydedin: kullanıcı kimliği (veya bir e‑posta hash'i), kullanılan şablon/sürüm, sağlayıcı yanıtı ve sağlayıcı mesaj kimliği. Amacı da saklayın; çünkü sihirli bağlantı ile davetin beklentileri farklıdır.

Sonuçları tek bir "başarısız" durumu yerine farklı kovalar olarak ele alın. Hard bounce başka bir sonraki adımı, geçici engelleme başka bir adımı, spam şikayeti başka bir adımı gerektirir. Abonelikten çıkmaları ayrı takip edin ki destek ekibi kullanıcıya "spam'i kontrol edin" demesin; doğru olarak posta susturulmuş olabilir.

Basit bir teslimat durum görünümü destek için şunları yanıtlamalıdır:

  • Ne gönderildi, ne zaman ve neden (şablon + amaç)
  • Sağlayıcının ne dediği (mesaj id + durum)
  • Bounce oldu mu, engellendi mi, şikayet var mı
  • Adres susturuldu mu (abonelik/bounce listesi)
  • Bir sonraki güvenli adım nedir (yeniden gönderme izinli mi, durdurma mı)

Test için tek bir posta kutusuna güvenmeyin. Büyük sağlayıcılar arasında en az üç test posta kutusuna sahip olun ve şablon veya gönderim ayarlarını değiştirdiğinizde hızlı bir kontrol çalıştırın. Gmail alıyorsa ama Outlook engelliyorsa, içerik, başlıklar ve alan adı itibarını gözden geçirme sinyali alırsınız.

Ayrıca gönderici alan adı kurulumu bir kontrol listesi maddesi olsun, tek seferlik proje değil. Gönderen alan adında SPF, DKIM ve DMARC'ın varlığını ve hizalanmasını teyit edin. Mükemmel tokenlar olsa bile zayıf alan adı kurulumu doğrulama ve davet e‑postalarını kaybettirebilir.

Net, güvenli ve filtrelenmeye daha az yatkın e‑posta içeriği

Güvenli portal davetleri oluşturun
Süresi dolan, eski bağlantıları iptal eden ve kullanıcıları düzgün yönlendiren bir davet akışı oluşturun.
Portal Oluştur

Birçok e‑posta "bozuk" değildir. Kullanıcılar mesajı yabancı bulur, eylem gömülüdür veya metin riskli görünür. İyi işlemsel e‑postalar tanınmayı kolaylaştıran öngörülebilir ifadeler ve düzen kullanır.

Konu satırlarını akış başına tutarlı kılın. Bugün "E‑postanızı doğrulayın" gönderiyorsanız, yarın "Hemen işlem!!!" diye değiştirmeyin. Tutarlılık tanınmayı artırır ve kullanıcıların oltalama mesajlarını fark etmesine yardımcı olur.

Birincil eylemi üstte koyun: e‑postayı neden aldıklarını açıklayan bir kısa cümle, sonra buton veya bağlantı. Davetlerde, kim tarafından ve hangi amaçla davet edildiklerini söyleyin.

Düz metin yedeği ve görünür ham URL ekleyin. Bazı istemciler butonları engeller, bazı kullanıcılar kopyala/yapıştır yapmayı tercih eder. URL'yi kendi satırına koyun ve okunabilir tutun. Mümkünse hedef alan adını metin içinde gösterin (örneğin: "Bu bağlantı portalinizi açacak").

İşleyen bir yapı:

  • Konu: tek bir net amaç (Doğrula, Oturum Aç, Daveti Kabul Et)
  • İlk satır: neden aldıklarını söyle
  • Birincil buton/bağlantı: üstte
  • Yedek ham URL: görünür ve kopyalanabilir
  • "Bunu siz istemediyseniz" rehberi: bir açık satır

Gürültülü biçimlendirmeden kaçının. Fazla noktalama, TAMAMEN BÜYÜK HARF ve "acil" gibi kelimeler filtreleri tetikleyebilir ve kullanıcı şüpheciliğini artırır. İşlemsel e‑postalar sakin ve spesifik olmalıdır.

Kullanıcılara eğer bu e‑postayı istemedilerse ne yapmaları gerektiğini her zaman söyleyin. Sihirli bağlantılar için ayrıca: "Bu bağlantıyı paylaşmayın." ifadesini ekleyin.

Adım adım: güvenli bir doğrulama veya sihirli bağlantı akışı inşa edin

Çift tıklamaları güvenli şekilde ele alın
Çift tıklamaları ve eski e‑postaları atomik bir Business Process ile zararsız hâle getirin.
İş Akışı Oluştur

Doğrulama, davet ve sihirli bağlantıları tek bir kalıp olarak ele alın: tek kullanımlık bir token ve o tokene izin verilen tek eylem.

1) Gerekli veriyi oluşturun

Kullanıcı üzerinde bir token saklamak cazip gelse de ayrı kayıtlar oluşturun. Ayrı tablolar denetimler, limitler ve hata ayıklamayı çok kolaylaştırır.

  • Users: e‑posta, durum (doğrulanmadı/aktif), last_login
  • Tokens: user_id (veya e‑posta), purpose (verify/login/invite), token_hash, expires_at, used_at, created_at, opsiyonel ip_created
  • Send log: user_id/e‑posta, şablon adı, created_at, provider_message_id, provider_status, hata metni (varsa)

2) Oluştur, gönder, sonra doğrula

Kullanıcı bir bağlantı istediğinde (veya davet oluşturduğunuzda) rastgele bir token üretin, yalnızca hash'ini saklayın, bir süre sonu belirleyin ve henüz kullanılmadığını kaydedin. E‑postayı gönderin ve sağlayıcı yanıt meta verisini gönderim kaydına kaydedin.

Tıklamada handler katı ve öngörülebilir olsun:

  • Gelen tokenı hash'leyip amaca göre token kaydını bulun.
  • Süresi dolmuş, zaten kullanılmış veya kullanıcı durumu eyleme izin vermiyorsa reddedin.
  • Geçerliyse eylemi uygulayın (doğrula, daveti kabul et, oturum aç) ve sonra tokenı used_at ile tüketin.
  • Oturum açma için bir oturum oluşturun veya doğrulama/davet için net bir tamamlandı durumu gösterin.

Başarı veya kurtarma ekranı döndürün: başarı ya da güvenli bir sonraki adım (yeni bir bağlantı iste, kısa bir cooldown sonra yeniden gönder, veya destek ile iletişime geç). Hata mesajlarını e‑posta varlığını açığa çıkarmayacak kadar belirsiz tutun.

Örnek senaryo: müşteri portalı için davetler

Bir yönetici, yükleniciye müşteri portalına belgeler yüklemek ve iş durumunu kontrol etmek için davet göndermek istiyor. Yüklenici sürekli bir çalışan olmadığı için davet kolay kullanılmalı ama kötüye kullanılmaya zor olmamalı.

Güvenilir bir davet akışı şöyle görünür:

  • Yönetici yüklenicinin e‑postasını girer ve Daveti Gönder'e tıklar.
  • Sistem tek kullanımlık bir davet tokenı oluşturur ve o e‑posta ve portal için önceki davetleri geçersiz kılar.
  • E‑posta 72 saatlik bir sona erme ile gönderilir.
  • Yüklenici bağlantıya tıklar, parola belirler (veya tek kullanımlık kodla onaylar) ve token kullanılmış olarak işaretlenir.
  • Yüklenici portalda, zaten oturum açmış şekilde karşılanır.

Yüklenici 72 saat sonra tıklarsa korkutucu bir hata göstermeyin. "Bu davetin süresi doldu" gösterin ve politikaya uygun tek bir eylem sunun (yeni davet isteyin veya yöneticiden yeniden göndermesini isteyin).

İkinci daveti gönderirken önceki tokenı iptal etmek, "İlk e‑postayı denedim, şimdi ikincisi çalışıyor" gibi kafa karışıklığını önler. Ayrıca eski iletilmiş bir bağlantının kullanılabileceği pencereyi de sınırlar.

Destek için basit bir gönderim kaydı tutun: davet ne zaman oluşturuldu, sağlayıcının e‑postayı kabul edip etmediği, bağlantının tıklanıp tıklanmadığı ve kullanılıp kullanılmadığı.

Kaçınılması gereken yaygın hatalar ve tuzaklar

Doğrulama ve oturum akışlarını birleştirin
Doğrulama, davet ve parolasız oturum açmayı tek tutarlı bir kalıba birleştirin.
Prototip Oluştur

Çoğu bozuk işlemsel e‑posta akışı sıkıcı nedenlerle başarısız olur: testte iyi görünen bir kısa yol, ölçeklendiğinde destek biletlerine neden olur.

Tekrarlayan problemlerden kaçının:

  • Farklı amaçlar için aynı tokenı yeniden kullanmak (giriş vs doğrulama vs davet).
  • Veritabanında ham tokenları saklamak. Yalnızca hash saklayın ve tıklamada hash karşılaştırın.
  • Sihirli bağlantılara günlerce yaşam hakkı vermek. Ömürleri kısa tutun ve taze bağlantılar verin.
  • E‑posta sağlayıcıları için şüpheli görünen sınırsız yeniden gönderimler.
  • Başarı sonrası tokenları tüketmemek.
  • Bir tokenı kabul edip amacını, süresini ve kullanım durumunu kontrol etmemek.

Gerçek dünyada sık görülen hata “telefon sonra masaüstü” tıklamasıdır. Kullanıcı daveti telefonda açıp sonra aynı e‑postayı masaüstünde açarsa; eğer tokenı ilk kullanımda tüketmiyorsanız, çift hesaplar oluşturabilir veya erişimi yanlış oturuma bağlayabilirsiniz.

Hızlı kontrol listesi ve sonraki adımlar

Son bir turu destek bakış açısıyla yapın: insanların geç tıklayacağını, e‑postayı ileteceğini, Yeniden Gönder'e beş kez basacağını ve hiçbir şey gelmediğinde yardım isteyeceğini varsayın.

Kontrol listesi:

  • Tokenlar: yüksek entropili rastgele değerler, tek amaçlı, yalnızca hash saklanmalı, tek kullanımlık.
  • Sona erme kuralları: akış başına farklı sona erme ve süresi dolmuş linkler için net kurtarma yolu.
  • Yeniden gönderme ve oran limitleri: kısa cooldownlar, günlük üst limitler, IP ve e‑posta adresi bazlı limitler.
  • Teslimat temelleri: SPF/DKIM/DMARC kurulumu, bounce/engelleme/şikayet takibi.
  • Gözlemlenebilirlik: gönderim kayıtları ve token kullanım kayıtları (oluşturuldu, gönderildi, tıklandı, kullanıldı, başarısızlık nedeni).

Sonraki adımlar:

  1. En az üç posta sağlayıcısıyla ve mobilde uçtan uca test yapın.
  2. Olumsuz yolları test edin: süresi dolmuş token, zaten kullanılmış token, çok fazla yeniden gönderme, yanlış e‑posta, iletilmiş e‑posta.
  3. Kısa bir destek prosedürü yazın: günlüklere nereden bakılacağı, neyi yeniden göndereceğiniz, filtreleri kontrol etmelerini ne zaman söyleyeceğiniz.

Eğer bu akışları AppMaster içinde kuruyorsanız, Tokenları ve gönderim kayıtlarını Data Designer'da modelleyebilir, tek seferlik kullanım, süre kontrolü ve oran limitlerini tek bir Business Process içinde zorlayabilirsiniz. Akış kararlı hale geldiğinde küçük bir pilot çalıştırın ve kopya ile limitleri gerçek kullanıcı davranışına göre ayarlayın.

SSS

Why do verification and magic links fail even when email sending is working?

Çoğu arıza, e‑posta gönderiminin başarısız olmasından ziyade akışın normal insan davranışlarını hesaba katmamasından kaynaklanır: kullanıcılar iki kez tıklar, e‑postayı farklı bir cihazda açar, saatler sonra geri döner veya daha eski bir mesajı kullanır. Sisteminiz “zaten kullanıldı”, “zaten doğrulanmış” ve “süresi dolmuş” durumlarını temizce ele almıyorsa, küçük kenar durumları çok sayıda destek talebine dönüşür.

What expiration times should I use for magic links, verification, and invites?

Yüksek riskli işlemler için kısa, daha az riskli işlemler için daha uzun süreler kullanın. Pratik bir başlangıç: sihirli oturum açma bağlantısı için 10–20 dakika, parola sıfırlama için 30–60 dakika, yeni kullanıcı e‑posta doğrulaması için 24–72 saat ve davetler için 1–7 gün. Süreleri kullanıcı geri bildirimine ve risk profilinize göre ayarlayın.

How do I handle users clicking the same link multiple times?

Tokenları tek kullanımlık yapın ve başarılı kullanımdan sonra atomik olarak tüketin; sonra sonraki tıklamaları normal, güvenli bir durum olarak ele alın. Hata vermek yerine “Bu bağlantı zaten kullanılmış” gibi net bir mesaj gösterin ve kişiyi oturum açmaya veya devam etmeye yönlendirin; böylece çift tıklamalar ve birden çok sekme deneyimi bozmamış olur.

What should a token contain, and what should I avoid putting in the URL?

Her amaç için ayrı tokenlar oluşturun ve mümkünse bunları opak tutun. Uzun rastgele bir değer üretin, yalnızca hash'ini sunucuda saklayın, amacını ve sona erme tarihini kaydedin; URL'e e‑posta adresleri, kullanıcı kimlikleri, roller veya diğer tanımlayıcı veriler koymayın—bağlantılar kopyalanır, günlüklenir ve iletilir.

Should I use opaque tokens or signed tokens for email links?

Çoğu ekip için opaque (opak) tokenlar en sade ve yönetimi en kolay yaklaşımdır: bunları veritabanında arayıp gerektiğinde geçersiz kılabilirsiniz. İmzalı tokenlar (signed) veri taşıyıp veritabanı sorgusunu azaltabilir, ancak anahtar yönetimi, doğrulama kuralları ve iptal mekanizmaları ek karmaşıklık getirir; çoğu doğrulama, davet ve sihirli bağlantı akışı için opak tokenlar sistemi daha anlaşılır kılar.

Why should I store only a hash of the token instead of the raw token?

Veritabanınız sızdırılırsa saldırganlar ham tokenları alıp kullanamasın diye tokenların yalnızca hash'ini saklayın. Arama için hızlı ancak güvenli bir hash kullanın ve gelen tokenı hash'leyip karşılaştırın; süresi dolmuş, zaten kullanılmış veya iptal edilmiş olanları reddedin.

How do I add resend limits without annoying real users?

Kısa bir cooldown ve günlük bir üst limitle başlayın; bu, normal kullanıcıları nadiren etkileyecek, ancak tekrar eden suistimali hızlıca zorlaştıracaktır. Limit tetiklendiğinde kullanıcıya tam olarak ne olduğunu ve sonraki adımı söyleyin (örneğin bir dakika bekleyin, spam klasörünü kontrol edin veya doğru adresi girdiğinizi onaylayın) — düzensiz bir hata yerine açık ve sakin metin kullanın.

What should I log to debug “the email never arrived” reports?

Her gönderiyi net bir amaç, şablon sürümü, provider mesaj kimliği ve sağlayıcı yanıtı ile kaydedin; sonuçları ayrı kovalar olarak tutun (bounce, block, spam şikayeti gibi). Böylece destek ekibi “gönderildi mi”, “sağlayıcı kabul etti mi” ve “adresi susturuyor muyuz” sorularına yanıt bulabilir, kullanıcının gelen kutusuna bakıp tahmin yürütmek zorunda kalmaz.

What user states do I need for reliable verification and invite flows?

Kullanıcı durumlarını küçük ve açık tutun; başarılı tıklamadan sonra tam olarak ne değişeceğini karar verin. Handlerınız token amacını, süresini ve kullanım durumunu doğrulamalı, sonra yalnızca tek bir durum değişikliği uygulamalı; eğer durum zaten tamamlanmışsa kullanıcıya dostane bir teyit gösterip ilerletin, akışı hata ile sonlandırmayın.

How can I implement these flows in AppMaster without writing custom backend code?

Tokenları ve gönderim kayıtlarını ayrı tablolar olarak modelleyin, sonra üretme, doğrulama, tüketme, süre kontrolü ve oran limitlerini tek bir Business Process içinde uygulayarak doğrulama, davet ve sihirli bağlantılarda tutarlı davranış sağlayın. Bu yaklaşım, bir oturum yaratmadan token tüketmeme veya tokenı tüketip niyet edilen durum değişikliğini uygulamama gibi hataları önlemeyi kolaylaştırır.

Başlaması kolay
Harika bir şey yaratın

Ücretsiz planla AppMaster ile denemeler yapın.
Hazır olduğunuzda uygun aboneliği seçebilirsiniz.

Başlayın
Çalışan işlemsel e‑posta akışları: tokenlar, sınırlar, teslimat | AppMaster