Brevo Transactional Email Kurulumu: SMTP ve API Rehberi
Brevo'nun SMTP ayarlarını yapılandırmak, doğru parametreleri kullanmadığınızda sipariş maillerinin spam'e düşmesine yol açar. İşte adım adım teknik kurulum.

E-ticaret sitenizden sipariş onayı maili gönderdiniz, müşteri "gelmedi" diyor. Spam klasörüne bakıyorsunuz, orada da yok. Sunucu loglarında "550 rejected" hatası var. Sorun, paylaşımlı hosting IP'nizin spam listelerinde olması. Ben 2019'da ilk WooCommerce projesinde aynı durumu yaşadım, o günden beri transactional email servisleri kullanıyorum. Brevo (eski adıyla Sendinblue), günde 300 ücretsiz mail kotası ve SMTP + API esnekliği sunuyor. Bu yazıda Brevo'yu WordPress, WooCommerce ve özel PHP uygulamalarına nasıl entegre edeceğinizi, SMTP parametrelerini nasıl yapılandıracağınızı, SPF/DKIM kayıtlarını nasıl doğrulayacağınızı anlatıyorum. Hollanda'dan verdiğim hizmetlerde bile Türk müşterilerime Brevo öneriyorum çünkü Türkçe arayüz, lokal destek ve KVKK uyumlu altyapı sağlıyor.
Brevo nedir ve neden transactional email için önemli
Brevo, pazarlama ve transactional email gönderimi için bulut tabanlı bir platform. Transactional email, kullanıcı eylemi sonrası tetiklenen maillerdir: sipariş onayı, şifre sıfırlama, fatura, kargo bildirimi. Pazarlama mailinden farkı, kullanıcının beklediği ve hemen ulaşması gereken içerik olması. Brevo'nun transactional tarafı, SMTP relay ve REST API üzerinden çalışır. Kendi sunucunuzun IP reputasyonunu kullanmak yerine Brevo'nun optimize edilmiş IP havuzundan gönderim yaparsınız.
Brevo'yu tercih etmemin üç nedeni var. Birincisi, ücretsiz planda günde 300 mail gönderilebilir, küçük e-ticaret siteleri için yeterli. İkincisi, SMTP ve API aynı anda kullanılabilir; WordPress için SMTP, özel otomasyon scriptleri için API. Üçüncüsü, gerçek zamanlı delivery raporları ve webhook desteği var. diolivo.com.tr projesinde sepet kurtarma maillerini Brevo üzerinden gönderiyoruz, açılma oranı %42, tıklama oranı %18. Aynı mailler hosting SMTP'sinden gönderildiğinde açılma oranı %9'du çünkü maillerin yarısı spam'e düşüyordu.
Brevo'nun Türkiye'deki yaygınlığı artıyor çünkü Mailchimp ve SendGrid'e göre daha uygun fiyatlı. Aylık 20.000 mail için Brevo 19 euro, SendGrid 89 dolar istiyor. Ayrıca Brevo, KVKK kapsamında veri işleme sözleşmesi (DPA) sunuyor, Avrupa sunucularında veri saklama seçeneği var. Hollanda merkezli çalıştığım için GDPR uyumu kritik, Türk müşterilerim için de KVKK uyumu aynı şekilde önemli.
Brevo hesabı açma ve API key alma
Brevo hesabı açmak ücretsiz, kredi kartı bilgisi istemiyor. brevo.com adresine gidip "Sign Up Free" butonuna tıklayın. Ad, soyad, e-posta, şifre girin. E-postanıza gelen doğrulama linkine tıklayın. İlk giriş yaptığınızda Brevo, hesap türünüzü sorar: "Marketing", "Transactional" veya "Both". E-ticaret için "Both" seçin çünkü hem sipariş mailleri hem kampanya mailleri göndereceksiniz.
Hesap açıldıktan sonra sol menüden "SMTP & API" sekmesine gidin. Burada üç bilgi göreceksiniz:
- SMTP sunucu adresi: smtp-relay.brevo.com
- SMTP port: 587 (TLS) veya 465 (SSL)
- SMTP kullanıcı adı: e-posta adresiniz
- SMTP şifresi: burada gösterilmiyor, "Generate a new SMTP key" butonuna tıklayarak oluşturmanız gerekiyor
"Generate a new SMTP key" butonuna tıklayın. Açılan pencerede key'e bir isim verin, örneğin "WordPress SMTP". Oluşturulan key'i kopyalayın ve güvenli bir yere kaydedin. Bu key, SMTP şifresi olarak kullanılacak. Brevo, key'i bir daha göstermez, kaybederseniz yeni key oluşturmanız gerekir.
API key için aynı sayfada "API Keys" sekmesine geçin. "Create a new API key" butonuna tıklayın, key'e bir isim verin (örneğin "WooCommerce API"), "v3" versiyonunu seçin. Oluşturulan key'i kopyalayın. API key, REST API üzerinden mail göndermek için kullanılır, SMTP'den daha hızlıdır çünkü HTTP üzerinden çalışır.
WordPress'e Brevo SMTP kurulumu
WordPress, varsayılan olarak PHP'nin mail() fonksiyonunu kullanır. Bu fonksiyon, sunucunuzun SMTP ayarlarına bağlıdır ve çoğu paylaşımlı hostingde güvenilir değildir. Brevo SMTP'yi WordPress'e entegre etmek için WP Mail SMTP veya Brevo'nun kendi plugini kullanılabilir.
WP Mail SMTP ile kurulum
WP Mail SMTP, WordPress için en popüler SMTP plugini. "Plugins" > "Add New" menüsünden "WP Mail SMTP" aratın, kurun, aktif edin. Kurulum sihirbazı açılır, "Other SMTP" seçeneğini seçin. Açılan formda şu bilgileri girin:
- SMTP Host: smtp-relay.brevo.com
- SMTP Port: 587
- Encryption: TLS
- Auto TLS: Enabled
- Authentication: On
- SMTP Username: Brevo'da kayıtlı e-posta adresiniz
- SMTP Password: Brevo'dan aldığınız SMTP key
"From Email" alanına gönderici e-posta adresiniz yazın, örneğin info@siteniz.com. "From Name" alanına marka adınızı yazın. "Save Settings" butonuna tıklayın. Ayarlar kaydedildikten sonra "Email Test" sekmesine geçin, kendi e-posta adresinizi girin, "Send Email" butonuna tıklayın. Mail gelirse kurulum başarılı.
WP Mail SMTP'nin ücretsiz versiyonu yeterli, pro versiyonu Amazon SES ve Outlook entegrasyonu sunuyor ama Brevo için gerekli değil. Ben genelde ücretsiz versiyonu kullanıyorum, logları Brevo dashboard'undan takip ediyorum.
Brevo Official Plugin ile kurulum
Brevo'nun kendi WordPress plugini var: "Brevo (formerly Sendinblue)". Bu plugin, SMTP'nin yanı sıra abone formu, pazarlama otomasyonu ve SMS gönderimi de sunuyor. Kurulum için "Plugins" > "Add New" menüsünden "Brevo" aratın, kurun, aktif edin. İlk açılışta Brevo hesabınıza bağlanmanız istenir, "Connect with Brevo" butonuna tıklayın, Brevo'ya giriş yapın, izin verin.
Plugin bağlandıktan sonra "Transactional" sekmesine gidin, "Activate email via Brevo" seçeneğini aktif edin. Bu ayar, WordPress'in tüm maillerini Brevo üzerinden gönderir. "From Email" ve "From Name" alanlarını doldurun, "Save Changes" butonuna tıklayın. Test maili göndermek için "Tools" > "Test Email" menüsüne gidin.
Brevo plugini, WP Mail SMTP'ye göre daha fazla özellik sunuyor ama daha ağır. Basit bir e-ticaret sitesi için WP Mail SMTP yeterli, pazarlama otomasyonu yapacaksanız Brevo plugini daha mantıklı.
WooCommerce ile Brevo entegrasyonu
WooCommerce, sipariş onayı, kargo bildirimi, fatura gibi transactional mailler gönderiyor. Varsayılan olarak WordPress'in mail fonksiyonunu kullanıyor, yani WP Mail SMTP kurulumu WooCommerce maillerini de kapsar. Ek bir ayar gerekmez.
Ancak WooCommerce maillerini daha fazla özelleştirmek istiyorsanız Brevo for WooCommerce plugini kullanabilirsiniz. Bu plugin, sipariş verilerini Brevo'ya senkronize eder, müşteri segmentasyonu yapmanızı sağlar. Kurulum için "Plugins" > "Add New" menüsünden "Brevo for WooCommerce" aratın, kurun, aktif edin. Plugin, Brevo hesabınıza bağlanmanızı isteyecek, API key girin.
Plugin ayarlarında "Order Sync" seçeneğini aktif edin. Bu, her siparişi Brevo'ya contact olarak ekler, sipariş tutarını ve ürünleri attribute olarak kaydeder. Böylece Brevo'da "son 30 günde 500 TL üzeri alışveriş yapan müşteriler" gibi segmentler oluşturabilirsiniz. diolivo.com.tr projesinde bu segmentasyonu kullanarak sepet kurtarma maillerini 3 gruba ayırdık: 100-300 TL arası sepet, 300-500 TL arası, 500+ TL. Her gruba farklı indirim kodu gönderdik, dönüşüm oranı %18'den %26'ya çıktı.
SPF ve DKIM kayıtlarını yapılandırma
SPF (Sender Policy Framework) ve DKIM (DomainKeys Identified Mail), e-posta doğrulama protokolleri. SPF, hangi sunucuların sizin adınıza mail gönderebileceğini belirtir. DKIM, mailin içeriğinin değiştirilmediğini dijital imza ile kanıtlar. Brevo üzerinden mail göndermek için domain'inizin DNS kayıtlarına SPF ve DKIM eklemek zorundasınız, aksi halde maller spam'e düşer.
Brevo dashboard'unda "Senders & IP" > "Domains" sekmesine gidin. "Add a Domain" butonuna tıklayın, domain adınızı girin (örneğin siteniz.com). Brevo, size üç DNS kaydı verecek:
1. SPF kaydı: TXT tipinde, içeriği "v=spf1 include:spf.brevo.com ~all" 2. DKIM kaydı: TXT tipinde, host "mail._domainkey", içeriği Brevo'nun verdiği uzun key 3. Tracking kaydı (opsiyonel): CNAME tipinde, açılma ve tıklama takibi için
Domain sağlayıcınızın DNS yönetim paneline gidin (GoDaddy, Namecheap, Cloudflare vb.). Yeni TXT kaydı ekleyin, host alanına "@" (root domain için) veya Brevo'nun belirttiği prefix'i yazın, value alanına SPF kaydını yapıştırın. İkinci TXT kaydını DKIM için ekleyin, host "mail._domainkey", value Brevo'nun verdiği key. Kayıtları kaydedin.
DNS propagasyonu 15 dakika ile 48 saat arasında sürer, genelde 1-2 saat içinde yayılır. Brevo'da "Verify" butonuna tıklayarak doğrulama yapın. Kayıtlar doğrulandığında yeşil tik işareti görünür. Doğrulama yapılmadan Brevo üzerinden mail gönderebilirsiniz ama deliverability düşük olur.
SPF kaydınızda zaten başka servisler varsa (örneğin Google Workspace), kayıtları birleştirmeniz gerekir. Örnek: "v=spf1 include:_spf.google.com include:spf.brevo.com ~all". SPF kaydı en fazla 10 lookup içerebilir, fazlası SPF'yi geçersiz kılar. Ben genelde Cloudflare DNS kullanıyorum çünkü değişiklikler 2-3 dakikada yayılıyor.
API ile mail gönderme (PHP örneği)
SMTP, WordPress gibi hazır sistemler için pratik ama özel otomasyon scriptlerinde yavaş kalıyor. Brevo'nun REST API'si, HTTP POST isteği ile mail göndermeyi sağlıyor, SMTP'den 3-5 kat daha hızlı. API kullanmak için Brevo PHP SDK veya cURL kullanabilirsiniz.
Brevo PHP SDK ile mail gönderme
Brevo'nun resmi PHP SDK'sı Composer ile kurulur:
composer require sendinblue/api-v3-sdk
Kurulum sonrası şu kod ile mail gönderebilirsiniz:
require_once(__DIR__ . '/vendor/autoload.php');
$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'BREVO_API_KEY_BURAYA');
$apiInstance = new SendinBlue\Client\Api\TransactionalEmailsApi(
new GuzzleHttp\Client(),
$config
);
$sendSmtpEmail = new \SendinBlue\Client\Model\SendSmtpEmail();
$sendSmtpEmail['subject'] = 'Sipariş Onayı';
$sendSmtpEmail['htmlContent'] = '<html><body><h1>Siparişiniz alındı</h1></body></html>';
$sendSmtpEmail['sender'] = array('name' => 'Marka Adı', 'email' => 'info@siteniz.com');
$sendSmtpEmail['to'] = array(array('email' => 'musteri@example.com', 'name' => 'Müşteri Adı'));
try {
$result = $apiInstance->sendTransacEmail($sendSmtpEmail);
print_r($result);
} catch (Exception $e) {
echo 'Hata: ', $e->getMessage(), PHP_EOL;
}
Bu kod, HTML içerikli bir mail gönderir. API yanıtı, "messageId" içerir, bu ID ile Brevo dashboard'unda mail durumunu takip edebilirsiniz.
cURL ile mail gönderme
Composer kullanamıyorsanız veya bağımlılık eklemek istemiyorsanız, cURL ile doğrudan API çağrısı yapabilirsiniz:
$url = 'https://api.brevo.com/v3/smtp/email';
$data = array(
'sender' => array('name' => 'Marka Adı', 'email' => 'info@siteniz.com'),
'to' => array(array('email' => 'musteri@example.com', 'name' => 'Müşteri Adı')),
'subject' => 'Sipariş Onayı',
'htmlContent' => '<html><body><h1>Siparişiniz alındı</h1></body></html>'
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'accept: application/json',
'api-key: BREVO_API_KEY_BURAYA',
'content-type: application/json'
));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Bu yöntem, SDK'ya göre daha hafif ama hata yönetimi manuel yapılmalı. Ben özel otomasyon scriptlerinde cURL kullanıyorum, WordPress projelerinde SDK tercih ediyorum.
Webhook ile mail durumu takibi
Brevo, gönderilen maillerin durumunu webhook ile bildirir: delivered, opened, clicked, bounced, spam. Webhook, belirttiğiniz URL'ye POST isteği gönderir, mail durumu JSON formatında gelir. E-ticaret siteleri için önemli çünkü sipariş maili ulaşmadıysa müşteriyi SMS ile bilgilendirebilirsiniz.
Webhook kurmak için Brevo dashboard'unda "Transactional" > "Settings" > "Webhooks" sekmesine gidin. "Add a new webhook" butonuna tıklayın, webhook URL'nizi girin (örneğin https://siteniz.com/brevo-webhook.php). Dinlemek istediğiniz event'leri seçin: delivered, opened, clicked, hard_bounce, soft_bounce, spam, unsubscribed. "Save" butonuna tıklayın.
Webhook endpoint'i, gelen POST verisini işleyecek bir PHP scripti olmalı:
$input = file_get_contents('php://input');
$data = json_decode($input, true);
if ($data['event'] == 'delivered') {
// Mail başarıyla teslim edildi
$messageId = $data['message-id'];
$email = $data['email'];
// Veritabanına kaydet
} elseif ($data['event'] == 'hard_bounce') {
// Mail geri döndü, e-posta adresi geçersiz
$email = $data['email'];
// Müşteriyi blacklist'e ekle
}
Webhook'ları test etmek için Brevo'nun "Send a test" özelliğini kullanın. Gerçek mail göndermeden webhook'un çalışıp çalışmadığını kontrol edebilirsiniz. diolivo.com.tr projesinde webhook ile hard bounce adresleri otomatik olarak WooCommerce'den siliyoruz, bu sayede bounce rate %2'nin altında kalıyor.
Brevo ücretsiz plan limitleri ve ücretli planlara geçiş
Brevo ücretsiz planında günde 300 mail gönderebilirsiniz, aylık sınır yok. 300 mail, küçük e-ticaret siteleri için yeterli: günde 50 sipariş alıyorsanız, her siparişe 3 mail giderse (onay, kargo, teslimat) 150 mail eder. Kalan 150 mail, şifre sıfırlama ve bildirimler için kullanılır.
Ücretsiz planda Brevo logosu maillerin altında görünür, bu profesyonel görünmüyor. Logo kaldırmak için Lite planına geçmeniz gerekir, aylık 25 euro, 20.000 mail içerir. Günde 100+ sipariş alıyorsanız Lite plan mantıklı. Premium plan (65 euro/ay), pazarlama otomasyonu ve landing page builder içeriyor, transactional email için gerekli değil.
Brevo, mail sayısı arttıkça fiyatı artırıyor ama SendGrid ve Mailgun'a göre ucuz. Aylık 100.000 mail için Brevo 99 euro, SendGrid 149 dolar istiyor. Ayrıca Brevo, fazla mail gönderirseniz otomatik olarak üst plana geçirmiyor, size bildirim gönderiyor ve onay istiyor. Bu, beklenmedik fatura şoklarını önlüyor.
Ben Hollanda'dan çalıştığım için müşterilerime genelde Lite planı öneriyorum. Türkiye'de euro pahalı ama Brevo'nun sunduğu deliverability ve raporlama özellikleri, hosting SMTP'sine göre çok daha değerli. Özellikle sepet kurtarma gibi gelir getiren maillerde, %40 açılma oranı ile %9 açılma oranı arasındaki fark, aylık 25 euro'nun kat kat üzerinde gelir farkı yaratıyor.
Brevo'yu doğru yapılandırdığınızda transactional mailleriniz güvenilir bir şekilde ulaşır, spam klasörüne düşmez, açılma ve tıklama oranları ölçülebilir. Ben FUTIA'da tüm müşteri projelerime Brevo kuruyorum, 6 yıllık sosyal medya pazarlama deneyimimde en çok göz ardı edilen konu e-posta deliverability oldu. Sitenizde Brevo kurulumu veya mevcut SMTP yapılandırmanızın kontrolü için WhatsApp üzerinden +90 532 491 17 05 numarasından veya info@futia.net adresinden bana ulaşabilirsiniz. Hollanda'dan çalışıyorum ama Türk markalarına özel paketlerimiz var, site + otomasyon + aylık bakım dahil.
Sıkça Sorulanlar
Brevo ücretsiz planında günde 300 mail yeterli mi?
Küçük ve orta ölçekli e-ticaret siteleri için yeterli. Günde 50 sipariş alıyorsanız ve her siparişe 3 mail (onay, kargo, teslimat) gönderiyorsanız 150 mail kullanırsınız. Kalan 150 mail, şifre sıfırlama, bildirim ve sepet kurtarma için kullanılabilir. Günde 100+ sipariş alıyorsanız veya pazarlama mailleri de gönderiyorsanız Lite plana (aylık 20.000 mail) geçmeniz gerekir. Brevo, limit aşımında otomatik ücretlendirme yapmıyor, size bildirim gönderiyor.
Brevo SMTP ve API arasındaki fark nedir?
SMTP, e-posta protokolü üzerinden çalışır, WordPress ve WooCommerce gibi hazır sistemlerde kolay entegre edilir. WP Mail SMTP gibi pluginlerle birkaç dakikada kurulur. API, HTTP üzerinden çalışır, daha hızlıdır ve daha fazla kontrol sunar. Özel PHP scriptlerinde, toplu mail gönderiminde veya webhook entegrasyonunda API tercih edilir. SMTP kurulumu teknik bilgi gerektirmez, API kullanımı temel programlama bilgisi gerektirir. İkisini aynı anda kullanabilirsiniz: WordPress mailleri için SMTP, otomasyon scriptleri için API.
SPF ve DKIM kayıtlarını eklemeden Brevo kullanabilir miyim?
Teknik olarak kullanabilirsiniz ama maillerinizin çoğu spam klasörüne düşer. SPF ve DKIM, e-posta doğrulama protokolleridir, olmadan gönderilen mailler güvenilir kabul edilmez. Gmail, Outlook gibi sağlayıcılar SPF/DKIM olmayan mailleri otomatik spam'e atar. Kayıtları eklemek 10-15 dakika sürer, DNS sağlayıcınızın panelinden TXT kaydı eklemeniz yeterli. Brevo dashboard'unda domain doğrulama yaptıktan sonra deliverability %95'in üzerine çıkar. E-ticaret sitelerinde sipariş maili ulaşmazsa müşteri kaybı yaşarsınız, SPF/DKIM bu riski ortadan kaldırır.
Brevo webhook'ları ne işe yarar?
Webhook, gönderilen maillerin durumunu gerçek zamanlı olarak bildirir: delivered, opened, clicked, bounced, spam. E-ticaret siteleri için kritik çünkü sipariş maili ulaşmadıysa müşteriyi SMS ile bilgilendirebilirsiniz. Hard bounce (geçersiz e-posta adresi) durumunda müşteriyi veritabanından silebilir, bounce rate'i düşürebilirsiniz. Webhook, belirttiğiniz URL'ye POST isteği gönderir, siz de bu veriyi işleyip aksiyon alırsınız. Kurulum Brevo dashboard'undan 5 dakikada yapılır, endpoint için basit bir PHP scripti yeterli. Webhook olmadan mail durumlarını manuel kontrol etmeniz gerekir.
WooCommerce için Brevo mi yoksa WP Mail SMTP mi?
Sadece transactional mail (sipariş, kargo, fatura) gönderecekseniz WP Mail SMTP yeterli. Basit kurulum, hafif plugin, ekstra özellik yok. Pazarlama otomasyonu, müşteri segmentasyonu, sepet kurtarma yapacaksanız Brevo Official Plugin daha mantıklı. Brevo plugini, WooCommerce siparişlerini Brevo'ya senkronize eder, contact attribute'leri oluşturur, böylece "son 30 günde 500 TL üzeri alışveriş yapan müşteriler" gibi segmentler oluşturabilirsiniz. Ben genelde her iki plugini de kuruyorum: WP Mail SMTP transactional mailler için, Brevo plugin pazarlama için. İki plugin çakışmaz, farklı işlevleri var.
Bu yazıdaki tekniklerden birini uygulamak ister misiniz? Kısa bir form doldurun, 48 saat içinde ücretsiz ön inceleme raporu mailinize düşsün.