$npx -y skills add komunite/tezgah --skill saas-emailSaaS uygulaması için transactional e-posta altyapısı kur. Resend veya Mailgun yapılandırması, DNS kayıtları (SPF, DKIM, DMARC), e-posta şablonları ve spam'dan kaçınma stratejisi. Bu skill'i kullanıcı e-posta gönderimi, DNS ayarları, spam sorunu, magic link, e-posta şablonu veya e
| 1 | # SaaS Email — E-posta Altyapısı |
| 2 | |
| 3 | Bu skill, bir SaaS uygulamasının e-posta katmanını kurar. E-posta, kullanıcıyla iletişimin en kritik kanalıdır — magic link giriş, ödeme onayları, bildirimler ve destek hep e-postaya bağlıdır. |
| 4 | |
| 5 | **Bağımlılık:** Bu skill **saas-launcher** orkestratör skill'inin Faz 5'idir. Bağımsız olarak da kullanılabilir. |
| 6 | |
| 7 | **Bağlı skill'ler:** |
| 8 | - **saas-auth** — Magic Link stratejisi bu skill'in altyapısına bağlıdır. |
| 9 | - **saas-payments** — Ödeme bildirimleri (onay, hata, iptal) e-posta ile gönderilir. |
| 10 | |
| 11 | **Zamanlama notu:** DNS kayıtlarının yayılması 24-48 saat sürebilir. E-posta altyapısını mümkün olduğunca erken — ideal olarak projenin ilk gününde — başlat. En azından DNS kayıtlarını ekle, servis tarafında doğrulamayı beklerken diğer fazlara devam et. |
| 12 | |
| 13 | --- |
| 14 | |
| 15 | ## E-posta Servisi Seçimi |
| 16 | |
| 17 | ### Resend — Varsayılan Önerimiz |
| 18 | |
| 19 | **Ne zaman seç:** Çoğu SaaS projesi için. Modern API, React Email ile güzel şablonlar, Next.js ekosistemiyle doğal uyum. |
| 20 | |
| 21 | Güçlü yönleri: API tasarımı basit ve modern, React Email ile tip güvenli şablonlar, webhook desteği, domain doğrulama dashboard'u anlaşılır, Next.js ve Vercel ile sorunsuz entegrasyon. |
| 22 | |
| 23 | Zayıf yönleri: Ücretsiz katman günde 100 e-posta ile sınırlı (launch günü aşılabilir), inbound e-posta desteği sınırlı, görece yeni servis (Mailgun kadar olgun değil). |
| 24 | |
| 25 | Fiyatlandırma: Ücretsiz katman (100/gün), ardından $20/ay (50K e-posta). Çoğu erken SaaS için yeterli. |
| 26 | |
| 27 | ### Mailgun |
| 28 | |
| 29 | **Ne zaman seç:** Yüksek hacimli gönderim, gelişmiş inbound e-posta routing, mevcut Mailgun altyapısı varsa. |
| 30 | |
| 31 | Güçlü yönleri: Yüksek hacim desteği, güçlü inbound routing (gelen e-postaları webhook'la işle), olgun ekosistem, detaylı analitik. |
| 32 | |
| 33 | Zayıf yönleri: API tasarımı eski, React Email desteği yok (HTML şablonları elle yazılmalı), kurulum daha karmaşık, EU ve US bölgeleri ayrı. |
| 34 | |
| 35 | --- |
| 36 | |
| 37 | ## DNS Altyapısı — E-postanın Temeli |
| 38 | |
| 39 | DNS kayıtları, e-postalarının spam yerine inbox'a düşmesini sağlayan teknik altyapıdır. Bu kayıtlar olmadan gönderilen e-postaların büyük çoğunluğu spam klasörüne gider veya hiç teslim edilmez. |
| 40 | |
| 41 | ### Subdomain Stratejisi |
| 42 | |
| 43 | **Ana domain'den e-posta gönderme.** `noreply@uygulamam.com` yerine `noreply@mail.uygulamam.com` kullan. |
| 44 | |
| 45 | Neden: Transactional e-posta gönderimi ana domain'in itibarını riske atar. E-posta itibarı zedelenirse uygulamanın SEO'su ve diğer e-posta iletişimi de etkilenebilir. Subdomain izolasyon sağlar. |
| 46 | |
| 47 | ### Üç Zorunlu DNS Kaydı |
| 48 | |
| 49 | #### SPF (Sender Policy Framework) |
| 50 | |
| 51 | SPF, "bu domain adına kimler e-posta gönderebilir?" sorusunun cevabıdır. Alıcı sunucu bu kaydı kontrol eder — listede olmayan sunucudan gelen e-postayı reddeder veya spam'a atar. |
| 52 | |
| 53 | Kayıt türü: TXT |
| 54 | İsim: mail (veya mail.uygulamam.com) |
| 55 | Değer: Resend için `v=spf1 include:_spf.resend.com ~all`, Mailgun için `v=spf1 include:mailgun.org ~all` |
| 56 | |
| 57 | `~all` (softfail) başlangıç için uygun. Sistem oturduğunda `-all` (hardfail) yapılabilir. |
| 58 | |
| 59 | #### DKIM (DomainKeys Identified Mail) |
| 60 | |
| 61 | DKIM, gönderilen her e-postaya dijital imza ekler. Alıcı sunucu bu imzayı DNS kaydıyla doğrular — imza eşleşmezse e-posta kurcalanmış demektir. |
| 62 | |
| 63 | Kayıt detayları e-posta servisinin dashboard'undan alınır. Genellikle bir veya birden fazla CNAME veya TXT kaydıdır. Her servis farklı format kullanır — dashboard'daki talimatları aynen takip et. |
| 64 | |
| 65 | #### DMARC (Domain-based Message Authentication, Reporting and Conformance) |
| 66 | |
| 67 | DMARC, SPF ve DKIM sonuçlarına göre ne yapılacağını belirler ve raporlama sağlar. |
| 68 | |
| 69 | Kayıt türü: TXT |
| 70 | İsim: _dmarc.mail (veya _dmarc.mail.uygulamam.com) |
| 71 | Başlangıç değeri: `v=DMARC1; p=none; rua=mailto:dmarc@uygulamam.com` |
| 72 | |
| 73 | **Aşamalı yaklaşım:** |
| 74 | 1. `p=none` ile başla — sadece raporla, hiçbir şey engelleme. Raporları incele, meşru e-postaların doğru geçtiğinden emin ol. |
| 75 | 2. Birkaç hafta sorunsuz çalıştıktan sonra `p=quarantine` yap — şüpheli e-postaları spam'a at. |
| 76 | 3. Her şey stabil olduğunda `p=reject` yap — şüpheli e-postaları tamamen reddet. |
| 77 | |
| 78 | ### DNS Kayıt Ekleme Süreci |
| 79 | |
| 80 | 1. Domain sağlayıcının (Cloudflare, Namecheap, GoDaddy, Vercel Domains vb.) DNS yönetim paneline git |
| 81 | 2. E-posta servisinin dashboard'undan gerekli kayıtları al (SPF, DKIM, DMARC) |
| 82 | 3. Kayıtları DNS paneline ekle — kayıt türü, isim ve değer alanlarını aynen kopyala |
| 83 | 4. Kaydet ve yayılmayı bekle (15 dakika - 48 saat) |
| 84 | 5. E-posta servisinin dashboard'unda "Verify" butonuna tıklayarak doğrulamayı kontrol et |
| 85 | |
| 86 | **Cloudflare kullanıyorsan:** DKIM için eklenen CNAME kayıtlarında "Proxy" (turuncu bulut) devre dışı olmalı — sadece "DNS only" (gri bulut). Proxy aktifken doğrulama başarısız olur. |
| 87 | |
| 88 | --- |
| 89 | |
| 90 | ## E-posta Şab |