Mail Sistemi Analizi v2

Muzibu Mail Altyapısı

Mevcut Durum + Postmark Geçiş Analizi

Bu doküman başka AI sistemlerine de danışılabilir formattadır

Basit Anlatım (Herkes İçin)

Ne yapıyoruz? Muzibu'da kullanıcılara mail gönderiyoruz - kayıt olunca hoş geldin, ödeme yapınca bilgi, şüpheli giriş olunca uyarı vs.

Sorun ne? Gmail SMTP kullanıyoruz ama sürekli kopuyor, bazen mailler gitmiyor, bazen geç gidiyor.

Çözüm ne? Profesyonel bir mail servisi (Postmark) kullanacağız. Bunlar sadece mail işi yapıyor, %99.9 garanti veriyorlar.

Kurulum zor mu? Hayır, 2 satır kod değişikliği + DNS kaydı eklemek. 15 dakikada biter.

Sistem Dinamikleri (AI Danışmanlık İçin)

# PROJE BİLGİLERİ
Framework: Laravel 11.x
PHP: 8.2+
Queue System: Redis + Laravel Horizon
Server: Plesk (Linux)
Domain: muzibu.com

# MEVCUT MAIL YAPILANDIRMASI
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@muzibu.com

# MAİL MODÜLLERİ
Konum: Modules/Mail/App/
Service: MailService.php (merkezi mail yönetimi)
Mailler: 8 adet Mailable sınıfı
Templates: 15 adet blade template

# MAİL TİPLERİ VE KRİTİKLİK SEVİYESİ
┌─────────────────────────┬────────────┬─────────────────────┐
│ Mail Tipi               │ Kritiklik  │ Gecikme Toleransı   │
├─────────────────────────┼────────────┼─────────────────────┤
│ TwoFactorCodeMail       │ 🔴 Kritik  │ < 30 saniye         │
│ VerifyEmailMail         │ 🔴 Kritik  │ < 1 dakika          │
│ NewDeviceLoginMail      │ 🔴 Kritik  │ < 1 dakika          │
│ PaymentSuccessMail      │ 🟠 Yüksek  │ < 5 dakika          │
│ PaymentFailedMail       │ 🟠 Yüksek  │ < 5 dakika          │
│ WelcomeMail             │ 🟡 Normal  │ < 15 dakika         │
│ TrialEndingMail         │ 🟡 Normal  │ < 1 saat            │
│ SubscriptionRenewalMail │ 🟡 Normal  │ < 1 saat            │
│ CorporateInviteMail     │ 🟡 Normal  │ < 1 saat            │
│ Career Mailleri (5)     │ 🟢 Düşük   │ < 24 saat           │
│ Shop Quote Mailleri (2) │ 🟢 Düşük   │ < 24 saat           │
└─────────────────────────┴────────────┴─────────────────────┘

# QUEUE YAPISI
Tüm mailler queue üzerinden: Mail::to($user)->queue(new XxxMail())
Queue driver: Redis
Worker: Laravel Horizon
Retry: 3 kez, exponential backoff

# MEVCUT SORUNLAR (Gmail SMTP)
1. Rate limiting (günlük 500 limit)
2. SMTP timeout hataları
3. TLS handshake failures
4. Bazı mailler spam'e düşüyor
5. Delivery tracking yok

# GEREKSİNİMLER
- %99+ deliverability
- Spam'e düşmeme garantisi
- Webhook desteği (bounce, delivered, opened)
- Kolay Laravel entegrasyonu
- Aylık ~5.000-10.000 mail kapasitesi

Tüm Mail Tipleri ve Dosya Konumları

Mail Sınıfı Template Modül Tetikleyici
WelcomeMail emails/welcome.blade.php Mail Kayıt sonrası
TwoFactorCodeMail emails/two-factor-code.blade.php Mail 2FA login
NewDeviceLoginMail emails/new-device-login.blade.php Mail Yeni cihaz girişi
PaymentSuccessMail emails/payment-success.blade.php Mail Ödeme başarılı
PaymentFailedMail emails/payment-failed.blade.php Mail Ödeme başarısız
TrialEndingMail emails/trial-ending.blade.php Mail Deneme bitiyor
SubscriptionRenewalMail emails/subscription-renewal.blade.php Mail Abonelik yenileme
CorporateInviteMail emails/corporate-invite.blade.php Mail Kurumsal davet
ApplicationSubmittedMail emails/application-submitted.blade.php Career Başvuru yapıldı
ApplicationReceivedMail emails/application-received.blade.php Career Admin'e bildirim
InterviewInviteMail emails/interview-invite.blade.php Career Mülakat daveti
ApplicationHiredMail emails/application-hired.blade.php Career İşe alındı
ApplicationRejectedMail emails/application-rejected.blade.php Career Red edildi
QuoteCustomerMail emails/quote-customer.blade.php Shop Teklif müşteriye
QuoteAdminMail emails/quote-admin.blade.php Shop Teklif admin'e

Mail Servisi Karşılaştırması (Güvenilirlik Odaklı)

Servis Deliverability Uptime SLA Kurulum Laravel 10K/ay
Postmark %99+ %99.99 2 satır Native $15
Resend %98 %99.9 2 satır Native $20
SendGrid %95-97 %99.95 Composer SDK $20
Mailgun %95-97 %99.9 Composer Native $35
AWS SES %97-99 %99.9 Karmaşık Native $1
Gmail SMTP %80-90 Yok Kolay SMTP Ücretsiz*

* Gmail günlük 500 mail limiti var, production için uygun değil

Neden Postmark? (Detaylı Analiz)

Teknik Üstünlükler

  • Sadece Transactional: Marketing mail kabul etmiyor = IP'ler temiz
  • 2010'dan beri: 14 yıllık deneyim ve olgun altyapı
  • Dedicated IP: Paylaşımlı değil, kendi IP havuzun
  • DKIM/SPF/DMARC: Otomatik yapılandırma
  • 45 gün log: Tüm maillerin detaylı geçmişi

Laravel Entegrasyonu

  • Native Driver: Laravel 9+ built-in postmark desteği
  • Zero Package: Ekstra composer paketi yok
  • Config ready: config/mail.php'de zaten tanımlı
  • Queue uyumlu: Mevcut Horizon yapısıyla çalışır
  • Webhook: Bounce/delivered/opened tracking

Postmark Kurulum Adımları

Adım 1: Hesap Aç

postmarkapp.com → Sign Up → Server oluştur

# Gerekli bilgiler:
Server Name: Muzibu Production
Server Type: Live (Transactional)

Adım 2: Domain Doğrula (Plesk DNS)

Postmark size 2 DNS kaydı verecek, Plesk'e ekle

# Örnek kayıtlar (gerçekleri Postmark verecek):

TXT _dmarc.muzibu.com "v=DMARC1; p=none;"
TXT pm._domainkey.muzibu.com "k=rsa; p=MIGf..."
CNAME pm-bounces.muzibu.com pm.mtasv.net

Adım 3: .env Güncelle (TEK DEĞİŞİKLİK!)

# Eski (Gmail SMTP):
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=587

# Yeni (Postmark):
MAIL_MAILER=postmark
POSTMARK_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Laravel 11'de postmark driver zaten var, composer paketi gerekmez!

Adım 4: Cache Temizle & Test

php artisan config:clear

# Test mail gönder:
php artisan tinker
Mail::raw('Postmark test', fn($m) => $m->to('test@gmail.com'));

Postmark Fiyatlandırma

$15
/ay
10.000 mail
Muzibu için ideal
$50
/ay
50.000 mail
Büyüme planı
$100
/ay
125.000 mail
Orta ölçek
$225
/ay
300.000 mail
Kurumsal

Tüm planlarda: Webhook, Analytics, API, 45 gün log, Dedicated IP

Bonus: Failover Yapılandırması (Opsiyonel)

Postmark'ta sorun olursa otomatik Resend'e geç:

// config/mail.php
'mailers' => [
    'failover' => [
        'transport' => 'failover',
        'mailers' => [
            'postmark',  // Öncelikli
            'resend',    // Yedek
        ],
    ],
],

// .env
MAIL_MAILER=failover
POSTMARK_TOKEN=xxx
RESEND_API_KEY=re_xxx

Sonuç ve Öneri

Muzibu İçin Seçim

P
Postmark
$15/ay - 10.000 mail
  • ✓ %99+ inbox teslim garantisi
  • ✓ 2 satır kod değişikliği
  • ✓ Laravel native desteği
  • ✓ Mevcut queue yapısıyla uyumlu

Aksiyon Planı

  1. 1 postmarkapp.com'da hesap aç
  2. 2 muzibu.com domain'ini ekle ve doğrula
  3. 3 API Token al, .env'e ekle
  4. 4 Test mail gönder, çalıştığını doğrula
18 Şubat 2026 • Muzibu.com