📧 AWS SES Mail Kurulum Kılavuzu

Muzibu & Tuufi Multi-Tenant Sistemi için Amazon SES Entegrasyonu

✅ AWS SDK Kuruldu • Hazır: Laravel Konfigürasyonu

☁️ 1. AWS Console Setup

1.1 AWS Hesabı & SES Aktif

  1. 1

    AWS Console → Amazon SES

    Region: eu-central-1 (Frankfurt - Türkiye'ye yakın)

1.2 Domain Verify (muzibu.com)

⚠️ ÖNEMLİ: Domain verify edilmeden mail gönderilemez!

  1. 1

    SES Dashboard → Verified identitiesCreate identity

  2. 2

    Identity type: Domain → Domain: muzibu.com

  3. 3

    AWS size 3 DNS kaydı verecek:

    • CNAME (Domain Verification)

    • CNAME (DKIM 1)

    • CNAME (DKIM 2)

  4. 4

    Bu kayıtları Plesk Panel'den muzib.com.tr domain'ine ekle (DNS Ayarları)

  5. 5

    Verify tamamlanana kadar bekle (5-10 dakika) • Status: ✓ Verified

1.3 Sandbox Modundan Çık

🚨 KRİTİK: Sandbox modunda sadece verify edilmiş email'lere mail gönderebilirsiniz!

Production'a geçmek için AWS Support'tan "Production Access" talep etmelisiniz.

  1. 1

    SES Dashboard → Account details → Request production access

  2. 2

    Form doldur:

    • Mail Type: Transactional
    • Website URL: https://muzibu.com
    • Use case: "Sending transactional emails (order confirmations, password resets) for music streaming platform"
    • How recipients opt-in: "Users register and provide consent"
  3. 3

    Onay bekleniyor (genellikle 24 saat içinde) • Email bildirim gelecek

1.4 IAM Credentials Oluştur

  1. 1

    AWS Console → IAMUsersCreate user

  2. 2

    User name: muzibu-ses-sender

  3. 3

    Attach policy: AmazonSESFullAccess (veya custom policy ile sadece SendEmail)

  4. 4

    Create access key → Application running outside AWS

  5. 5

    Credentials'ları kaydet:

    Access key ID: AKIA...

    Secret access key: wJalr...

    ⚠️ Secret'i bir daha göremezsin, güvenli yere kaydet!

⚙️ 2. Laravel .env Konfigürasyonu

AWS credentials'ları aldıktan sonra .env dosyasını güncelle:

# Mail Configuration
MAIL_MAILER=ses
MAIL_FROM_ADDRESS=bilgi@muzibu.com
MAIL_FROM_NAME="Muzibu"

# AWS SES Configuration
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=wJalr...
AWS_DEFAULT_REGION=eu-central-1
AWS_SES_CONFIGURATION_SET=muzibu-config-set  # (Opsiyonel)

💡 İPUCU: config/mail.php'yi kontrol et

Laravel otomatik olarak .env'deki MAIL_MAILER=ses değerini okuyup AWS SDK'yı kullanacak.

🧪 3. Test Etme

3.1 Basit Test (Tinker)

php artisan tinker

Mail::raw('Bu bir test mailidir!', function($msg) {
    $msg->to('test@example.com')
        ->subject('SES Test Mail');
});

3.2 Mevcut Mail Sınıflarını Test Et

use Modules\Mail\App\Mail\PaymentSuccessMail;

Mail::to('test@example.com')->send(
    new PaymentSuccessMail($order, $payment)
);

Mevcut Mail sınıfları:

  • PaymentSuccessMail
  • PaymentFailedMail
  • WelcomeMail
  • SubscriptionRenewalMail
  • TrialEndingMail

🏢 4. Multi-Tenant Setup

Tenant-Specific Mail Adresleri

Her tenant kendi domain'inden mail gönderebilir:

  • Tenant 1001

    muzibu.com

    MAIL_FROM_ADDRESS=bilgi@muzibu.com

  • Tenant 2

    ixtif.com

    MAIL_FROM_ADDRESS=bilgi@ixtif.com

📌 NOT: Her domain için ayrı verify gerekir!

AWS SES'te her domain'i (muzibu.com, ixtif.com) ayrı ayrı verify etmelisiniz.

✅ Setup Checklist

🤖 Claude AI tarafından oluşturuldu • Muzibu/Tuufi Multi-Tenant Sistemi

📅 17 Aralık 2025