Mevcut Durum + Postmark Geçiş Analizi
Bu doküman başka AI sistemlerine de danışılabilir formattadır
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.
# 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
| Mail Sınıfı | Template | Modül | Tetikleyici |
|---|---|---|---|
| WelcomeMail | emails/welcome.blade.php | Kayıt sonrası | |
| TwoFactorCodeMail | emails/two-factor-code.blade.php | 2FA login | |
| NewDeviceLoginMail | emails/new-device-login.blade.php | Yeni cihaz girişi | |
| PaymentSuccessMail | emails/payment-success.blade.php | Ödeme başarılı | |
| PaymentFailedMail | emails/payment-failed.blade.php | Ödeme başarısız | |
| TrialEndingMail | emails/trial-ending.blade.php | Deneme bitiyor | |
| SubscriptionRenewalMail | emails/subscription-renewal.blade.php | Abonelik yenileme | |
| CorporateInviteMail | emails/corporate-invite.blade.php | 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 |
| 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
postmarkapp.com → Sign Up → Server oluştur
Postmark size 2 DNS kaydı verecek, Plesk'e ekle
Laravel 11'de postmark driver zaten var, composer paketi gerekmez!
Tüm planlarda: Webhook, Analytics, API, 45 gün log, Dedicated IP
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