İşlemsel e-posta, kullanıcının bir eylemiyle tetiklenen tekil iletidir: kayıt doğrulama, sipariş onayı, şifre sıfırlama. Bu rehber uygulamanızı SenderTR'ye bağlamanın iki yolunu anlatır. Her ikisi de aynı altyapıyı kullanır; fark yalnızca entegrasyon biçimindedir.
Hangisini seçmeli: API mi SMTP mi?
SMTP, uygulamanız zaten bir SMTP sunucusu kullanıyorsa en hızlı yoldur; yalnızca ayarları değiştirirsiniz. API ise teslim durumunu senkron almak, bağlantı yönetimiyle uğraşmamak ve mesaj kimliğiyle olayları eşleştirmek istiyorsanız daha uygundur. Yüksek hacimde ikisinde de kuyruk kullanın.
Ön koşul: doğrulanmış alan adı
Gönderen adresi, panelde doğruladığınız bir alan adında olmalı. SPF, DKIM ve DMARC'ın üçü de geçmeden API 422 domain_not_verified döner. Adımlar için SPF, DKIM ve DMARC kurulumu.
Yol A — REST API
1. Anahtar alın
Ayarlar → API Anahtarları → Yeni Anahtar Oluştur. Anahtar yalnızca bir kez gösterilir; güvenli saklayın. İsterseniz IP kısıtlaması koyun. Anahtarı asla tarayıcı koduna veya mobil uygulama paketine gömmeyin.
2. İlk isteği gönderin
curl -X POST https://api.sendertr.com/v1/send \
-H "X-Api-Key: ANAHTARINIZ" \
-H "Content-Type: application/json" \
-d '{
"to": "musteri@ornek.com",
"from_email": "no-reply@alanadiniz.com",
"from_name": "Şirketiniz",
"reply_to": "destek@alanadiniz.com",
"subject": "Siparişiniz alındı",
"html": "<p>Teşekkürler!</p>"
}'
Başarılı yanıt 202 ve bir message_id döner. Bu kimliği kendi veritabanınızda saklayın; webhook olayları aynı kimlikle gelir. from_name ve reply_to her istekte farklı olabilir, bu sayede birden çok marka veya mağaza adına tek hesaptan gönderebilirsiniz.
Dikkat: adres api.sendertr.com/v1/send'dir; /api/v1/send yazarsanız 404 alırsınız.
3. Hız sınırı
İşlemsel API dakikada 300 istek kabul eder. Sınıra takılırsanız 429 ve Retry-After başlığı gelir; o kadar bekleyip yeniden deneyin.
Yol B — SMTP relay
Transactional → SMTP Bilgileri bölümünden kullanıcı adı ve şifre oluşturun, ardından uygulamanıza girin:
| Ayar | Değer |
|---|---|
| Sunucu | smtp.sendertr.com |
| Port | 587 |
| Şifreleme | STARTTLS |
| Kimlik doğrulama | Evet, kullanıcı adı + şifre |
Platforma özel adımlar: WordPress, WooCommerce, Laravel, Ticimax ve IdeaSoft.
Teslim takibi: webhook
Ayarlar → Webhooks bölümünde adresinizi tanımlayın ve olayları seçin: delivered, deferred, bounced, failed, expired, complained, opened, clicked, unsubscribed. Her olay JSON gövdeyle POST edilir; message_id ve tekil olay kimliği (X-Event-Id) taşır. İstekler HMAC-SHA256 ile imzalanır; imzayı doğrulayın ve olayları tekrar gelebilir varsayarak idempotent işleyin. Yanıtınız 2xx değilse yeniden denenir, art arda başarısızlıkta webhook otomatik devre dışı kalır; teslim edilemeyen olaylar panelde "ölü mektup" olarak bekler ve tek tıkla yeniden gönderilir. Gönderim tarafında da Idempotency-Key başlığıyla aynı isteği güvenle yineleyebilir, sürümlü şablonları API'den yönetebilir, resmî PHP/Node.js SDK'larını kullanabilirsiniz (docs.sendertr.com).
Otomatik yapılanlar
- Kalıcı geri dönen, şikâyet eden ve abonelikten çıkan adresler baskılama listesine alınır; onlara bir daha gönderim yapılmaz ve kredi harcanmaz.
- Gönderilemeyen iletinin kredisi iade edilir.
- İşlemsel ve pazarlama trafiği ayrı IP havuzlarından çıkar; bir kampanyanın şikâyeti sipariş e-postalarınızı etkilemez.
Sık görülen hatalar
| Yanıt | Anlamı | Çözüm |
|---|---|---|
| 401 unauthorized | Başlık yok | X-Api-Key veya Authorization: Bearer ekleyin |
| 401 invalid_api_key | Anahtar tanınmadı | Anahtarı panelden yeniden kopyalayın; boşluk kalmadığından emin olun |
| 403 no_sending_credential | Hesapta SMTP kimliği yok | Transactional bölümünden alan adınızı ekleyip SMTP bilgisi oluşturun |
| 422 domain_not_verified | Gönderen alan adı doğrulanmamış | SPF/DKIM/DMARC kayıtlarını ekleyip panelden doğrulayın |
| 429 | Hız sınırı | Retry-After kadar bekleyin |