Bülteni hazırladınız, 4.000 kişilik listeniz hazır, "Gönder" dediniz. İlk yüz mail çıktı, sonra her şey durdu. Ya da hepsi gitti gibi göründü ama açılma oranı yüzde iki çıktı, çünkü Gmail tarafında tek bir tanesi bile gelen kutusuna düşmedi. Toplu mail nasıl gönderilir sorusunun gerçek cevabı "hangi programı kullanayım" değildir; sorun neredeyse her zaman altyapıdadır. Paylaşımlı hosting'in SMTP servisi sipariş onayı, şifre sıfırlama, iletişim formu gibi tek tek işlem maillerini taşımak için tasarlanmıştır — kampanya taşımak için değil. Hosting mail gönderim limiti dediğimiz şey de bir cimrilik değil, o sunucudaki diğer yüzlerce siteyi kara listeden korumak için konmuş bir sigortadır.
Bu yazıda üç şeyi birlikte anlatıyorum: (1) paylaşımlı hosting'in saatlik mail limiti tam olarak nasıl çalışır, aştığınızda ne olur, hangi hata mesajını görürsünüz; (2) hangi liste büyüklüğünde hangi altyapıya geçmeniz gerekir, ayrı bir gönderim IP'si ne zaman şart olur ve IP ısıtma nasıl yapılır; (3) Türkiye'de toplu e-posta göndermenin hukuki tarafı — İYS kaydı ve izinli liste zorunluluğu — teknik tarafla nasıl birleşir. Yıllardır gördüğüm en yaygın hata, bu üç konudan sadece birini çözüp diğer ikisini yok saymak. Üçü aynı anda doğru olmadan gönderiminiz ya kesilir ya spam'e düşer ya da idari yaptırımla karşılaşırsınız.
Toplu Mail Gönderiminde Asıl Sorun Nedir#
Toplu gönderimde asıl sorun mail sayısı değil, gönderen itibarıdır. Alıcı taraftaki sistem (Gmail, Outlook, Yandex, kurumsal bir mail sunucusu) her mesajı üç soruyla karşılar: bu mail gerçekten iddia ettiği alan adından mı geliyor, bu IP'den daha önce ne geldi, bu göndericinin mesajlarını insanlar açıyor mu yoksa "spam" mı işaretliyor.
Paylaşımlı hosting'de bu soruların hiçbirinin cevabı sizin kontrolünüzde değildir. Aynı sunucuda yüzlerce hesap vardır ve hepsi aynı çıkış IP'sini kullanır. Sizinle aynı IP'yi paylaşan bir hesap hacklenip spam kusmaya başlarsa, o IP kara listeye girer ve sizin sipariş onayı mailiniz de gitmez. Sağlayıcının saatlik limit koymasının birinci sebebi budur: bir hesabın hatası tüm sunucuyu batırmasın diye.
İkinci mesele hız. Gmail gibi büyük alıcılar, tanımadıkları bir IP'den ani ve yoğun trafik gördüklerinde bunu "kaynak yeni ele geçirilmiş" varsayımıyla ele alır ve mesajları geçici olarak reddeder (greylisting) ya da doğrudan spam klasörüne yazar. Yani 5.000 kişilik listeye tek seferde göndermek, aynı listeye üç güne yayarak göndermekten daha kötü sonuç verir.
Paylaşımlı Hosting'de Mail Gönderim Limitleri Nasıl Çalışır#
Paylaşımlı hosting'de limit üç ayrı katmanda uygulanır ve çoğu kişi sadece birini bilir. cPanel/WHM tarafında tipik ayarlar şunlardır:
- Max hourly emails per domain — alan adı başına saatlik gönderim tavanı. Sağlayıcıya göre genellikle 100 ile 500 arasında bir değer.
- Max emails per hour (hesap bazlı) — hesabın tüm alan adlarının toplamı.
- Max percentage of failed or deferred messages — bir saat içindeki başarısız/ertelenen mesaj oranı. Bu eşiği aşmak, sayı limitini aşmaktan daha hızlı askıya aldırır; çünkü yüksek başarısızlık oranı "geçersiz listeye gönderiyor" demektir.
Buna ek olarak PHP tarafında mail() fonksiyonunun kullanımı, dakika başına süreç limitleri (nproc) ve giden kuyruğun boyutu da devreye girer. Yani "saatte 300 mail" yazan bir pakette, süreç limitine takıldığınız için 300'e hiç ulaşamayabilirsiniz.
Limitin ne olduğunu tahmin etmeyin, ölçün. cPanel'de Metrics → Email Deliverability ve Track Delivery ekranları son saatlerdeki gönderimi ve reddedilme sebeplerini gösterir. Kök erişiminiz varsa Exim tarafında şunlar işinizi görür:
# Kuyrukta bekleyen mesaj sayısı
exim -bpc
# Kuyruğun ilk 20 kaydı (kimden, kime, ne kadar beklemiş)
exim -bp | head -n 40
# Son bir saatte hangi hesap kaç mail göndermiş
grep "$(date -u '+%Y-%m-%d %H')" /var/log/exim_mainlog \
| grep "<=" | awk '{print $5}' | sort | uniq -c | sort -rn | head
Limiti Aşınca Tam Olarak Ne Olur#
Limiti aştığınızda mailler kuyruğa girmez, doğrudan reddedilir ve size bir bounce mesajı döner. cPanel sunucularında bu mesajın gövdesi tipik olarak şu satırı taşır:
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its recipients.
This is a permanent error. The following address(es) failed:
[email protected]
Domain ornekfirma.com has exceeded the max emails per hour (100)
allowed. Message discarded.
Buradaki kritik kelime discarded. Mesaj ertelenmedi, silindi. Bir sonraki saat başında otomatik olarak tekrar gönderilmez; o alıcılara mail hiç ulaşmaz ve siz de kimlere ulaşmadığını ancak bounce kutusunu okuyarak öğrenirsiniz. Bültenin yarısının gitmemesinin sebebi genelde budur.
İkinci sonuç daha ağırdır: art arda limit aşımı, sağlayıcının otomatik kurallarında hesabın SMTP yetkisinin kapatılması ya da hesabın tümüyle askıya alınmasıyla sonuçlanır. Sunucunun IP'si kara listeye düştüyse iş sizden çıkar; artık sağlayıcının delisting süreci beklenir. IP'nin kara listede olup olmadığını kontrol etmeyi ve çıkma sürecini mail blacklist sorgulama ve çıkma yazısında adım adım anlattım.
Üçüncü ve en sinsi sonuç: limit aşımı yaşayan hesapların işlem mailleri de durur. Yani bülten gönderimi yüzünden aynı saatte gelen siparişin onay maili, şifre sıfırlama maili, fatura maili de gitmez. Ticari zarar buradan başlar.
Hangi Liste Büyüklüğünde Hangi Altyapı#
Kısa cevap: düzenli olarak tek seferde 500'ün üzerinde mail gönderiyorsanız paylaşımlı hosting'den çıkmanız gerekir. Karar için kullandığım tablo şu:
| Altyapı | Tipik gönderim kapasitesi | IP itibarı kimde | Kurulum/işletme yükü | Uygun kullanım |
|---|---|---|---|---|
| Paylaşımlı hosting SMTP | Saatte 100–500, paylaşımlı | Sağlayıcıda, komşularla ortak | Yok | Sipariş/şifre/form mailleri |
| Kurumsal e-posta hizmeti | Günlük kotalı, kampanya için değil | Sağlayıcıda | Yok | Günlük yazışma, kurumsal kutu |
| VDS üzerinde kendi MTA'nız | Sunucu gücüyle sınırlı | Tamamen sizde | Yüksek (Postfix/Dovecot, DKIM, PTR, RBL takibi) | Teknik ekibi olan, kontrol isteyen firma |
| Ayrı gönderim IP'li SMTP sunucusu | Yüksek, kademeli artırılabilir | Sizde, tek başınıza | Orta (kurulum hazır gelir) | Düzenli bülten/kampanya gönderen firma |
| Dış SMTP relay servisi | Plana göre yüksek | Servis sağlayıcıda, havuzda | Düşük | Ani ve düzensiz büyük gönderimler |
Kendi MTA'nızı kurmayı düşünüyorsanız maliyetin kurulumda değil süreklilikte olduğunu baştan kabul edin: DKIM anahtar yönetimi, PTR kaydı, TLS sertifikası yenileme, kara liste takibi ve bounce işleme haftalık iş çıkarır. Listeyi yönetecek yazılım tarafında ise kendi sunucunuza kurabileceğiniz açık kaynak bülten araçları şablon, abonelik yönetimi ve bounce işlemeyi üstlenir; SMTP'yi bunlar sağlamaz, sadece kullanır — yani altyapı kararını yine sizin vermeniz gerekir.
Ayrı Gönderim IP'si ve IP Isıtma#
Ayrı gönderim IP'si, itibarınızı komşulardan ayırmanın tek yoludur. Ama yeni bir IP baştan "temiz" değildir, itibarsızdır — ki büyük alıcılar için bu neredeyse aynı şeydir. Bu yüzden yeni IP'yi ısıtmadan tam listeye gönderim yapmak, doğrudan reddedilmenin en hızlı yoludur.
Isıtma mantığı basittir: hacmi kademeli artırın ve ilk günlerde en aktif alıcılara gönderin. Son 90 günde mailinizi açmış kişiler ilk gruba girsin; iki yıldır sessiz olanlar en sona kalsın. Kabaca izlediğim plan:
- 1–3. gün: Günde 200–500 mail, sadece son 30 günde etkileşen alıcılar.
- 4–7. gün: Günde 1.000–2.000, son 90 günde etkileşenler.
- 2. hafta: Günlük hacmi her gün yaklaşık iki katına çıkarın, ama şikâyet oranı binde 3'ü geçerse bir önceki seviyeye dönün.
- 3–4. hafta: Pasif segmentleri küçük partiler hâlinde ekleyin.
Isıtma sırasında iki metriği günlük izleyin: hard bounce oranı (yüzde 2'yi geçmemeli) ve spam şikâyet oranı (binde 3'ün altında kalmalı). Bunlardan biri bozulduğunda hacmi artırmak, IP'yi yakmaktır.
Bir ayrıntı: pazarlama maillerini ana alan adınızdan değil, bir alt alan adından gönderin (kampanya.sirketiniz.com gibi). Böylece bülten itibarı bozulsa bile fatura ve sipariş mailinizin gittiği ana alan adı korunur. Alt alan adı için DNS'te ayrı bir A kaydı, ayrı bir SPF TXT kaydı ve ayrı bir DKIM seçicisi tanımlamanız gerekir; MX kaydını ise sadece o alt alan adına mail alacaksanız eklersiniz.
İzinli Liste ve İYS: Teknik Değil Hukuki Zorunluluk#
Türkiye'de ticari elektronik ileti göndermek için alıcının önceden onayı gerekir ve bu onayın İleti Yönetim Sistemi'ne (İYS) kaydedilmesi zorunludur. Bu bir "iyi uygulama" değil, yaptırımı olan bir yükümlülüktür; ayrıntısını İYS kaydı ve ticari elektronik ileti yazısında ele aldım.
Pratikte üç kural işletirim:
- Satın alınmış liste kullanılmaz. Onay devredilemez; birinden aldığınız listedeki onay size ait değildir. Ayrıca bu listeler yoğun biçimde spam tuzağı (spam trap) adresi taşır ve tek bir tuzağa gönderim, IP'nizi doğrudan kara listeye sokar.
- Çift onay (double opt-in) kullanın. Abonelik formundan sonra bir doğrulama maili gönderin, tıklanmadan listeye eklemeyin. Bu hem yanlış yazılmış adresleri hem de başkasının adresini yazan kötü niyetli kayıtları eler; hard bounce oranınız kendiliğinden düşer.
- Onayın kanıtını saklayın. Kayıt tarihi, IP adresi, hangi formdan geldiği. Şikâyet hâlinde ispat yükü göndericidedir.
Teknik tarafta bunun karşılığı da vardır: her mailde çalışan bir abonelikten çıkma bağlantısı ve mesaj başlığında List-Unsubscribe alanı bulunmalıdır. Büyük alıcılar artık tek tıkla iptali de bekliyor:
List-Unsubscribe: <https://kampanya.sirketiniz.com/cikis?t=TOKEN>, <mailto:[email protected]>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Çıkış talebini iki iş günü içinde uygulamanız gerekir; pratikte anında uygulayın, çünkü çıkamayan kullanıcı "spam" düğmesine basar ve bu size iptalden çok daha pahalıya mal olur.
Gönderim Öncesi Teknik Kontrol Listesi#
Gönderime başlamadan önce dört DNS kaydının doğru olduğundan emin olun. Bu dördü olmadan yapılan her gönderim, kaç mail attığınızdan bağımsız olarak spam'e düşme riski taşır.
# SPF kaydı — gönderim yapan sunucular listelenmiş mi
dig +short TXT kampanya.sirketiniz.com | grep spf1
# DKIM açık anahtarı — seçici (selector) adıyla sorgulanır
dig +short TXT s1._domainkey.kampanya.sirketiniz.com
# DMARC politikası
dig +short TXT _dmarc.sirketiniz.com
# Gönderim IP'sinin ters DNS (PTR) kaydı
dig +short -x 203.0.113.25
Dördünün ne işe yaradığını ve nasıl kurulacağını SPF, DKIM ve DMARC yazısında topluca anlattım. PTR kaydını kendi DNS panelinizden ekleyemezsiniz; IP'nin sahibi olan sağlayıcıdan istenir ve ileri/geri çözümlemenin tutarlı olması gerekir. Kritik nokta şudur: SPF ve DKIM'in var olması yetmez, From: satırındaki alan adıyla hizalı olmaları gerekir. Bu hizalama meselesi büyük alıcıların en sık reddetme sebebidir ve ayrı bir yazının konusudur: Gmail ve Yahoo'nun yeni gönderici kuralları.
Gönderim öncesi son adım, tek bir test mesajını gerçek bir kutuya atıp başlıklarını okumaktır:
swaks --to [email protected] \
--from [email protected] \
--server smtp.sirketiniz.com --port 587 --tls \
--auth LOGIN --auth-user [email protected] \
--header "Subject: Baglanti testi"
Gmail'de mesajı açıp "Orijinali göster" dediğinizde dkim=pass, spf=pass ve dmarc=pass üçünü birden görmelisiniz.
Gönderim Sırasında ve Sonrasında Ne İzlenir#
Gönderim başladıktan sonra izlenecek beş şey vardır ve hepsinin bir eşiği vardır:
| Metrik | Sağlıklı aralık | Aşılırsa yapılacak |
|---|---|---|
| Hard bounce oranı | %2 altı | Gönderimi durdur, listeyi temizle |
| Soft bounce oranı | %5 altı | Gönderim hızını düşür |
| Spam şikâyet oranı | %0,1 altı, sınır %0,3 | Segmenti gönderimden çıkar |
| Açılma oranı | Listeye göre değişir | Ani düşüş = spam klasörü şüphesi |
| Kuyruk gecikmesi | Dakikalar | Saatlere çıkıyorsa alıcı taraf kısıtlıyor |
Hard bounce (kalıcı hata, 5xx) alan adresleri aynı gün listeden çıkarın. Bir daha denemek, alıcı sistemin gözünde "geçersiz listeye ısrarla gönderen" tanımına girmenizi sağlar. Soft bounce (geçici hata, 4xx) alanlarda birkaç deneme normaldir; üç ardışık denemede de dönmüyorsa pasife alın. Ayrımı yapmanın pratik yolu, bounce mesajındaki üç haneli kodun ilk rakamına bakmaktır: 5 ile başlıyorsa kalıcı, 4 ile başlıyorsa geçicidir.
Bir de gönderim hızını (throttling) mutlaka ayarlayın. Aynı alıcı alan adına saniyede onlarca bağlantı açmak, doğru kayıtlarınız olsa bile geçici reddedilmeye yol açar. Çoğu bülten yazılımında bu ayar "alıcı sunucu başına eşzamanlı bağlantı" ve "saatlik gönderim tavanı" olarak bulunur; başlangıç için alan adı başına 2 eşzamanlı bağlantı ve dakikada 100–200 mesaj makul bir tempodur.
Sıkça Sorulan Sorular#
Paylaşımlı hosting ile kaç kişiye mail gönderebilirim#
Pratikte saatlik limitinizin altında kalmak kaydıyla birkaç yüz kişiye gönderebilirsiniz, ama düzenli bülten için uygun değildir. Sağlayıcıların tipik ayarı alan adı başına saatte 100–500 mesajdır ve bu tavan aşıldığında mesajlar ertelenmez, silinir. Ayrıca çıkış IP'sini onlarca hesapla paylaştığınız için itibar sizin kontrolünüzde değildir. Listeniz 500'ü geçtiyse ve gönderim düzenliyse ayrı bir gönderim altyapısına geçmek gerekir.
Saatlik mail limitimi nasıl öğrenirim#
En hızlı yol cPanel'deki Email Deliverability ve Track Delivery ekranlarına bakmak, oradan çıkmıyorsa sağlayıcınıza sormaktır. Kök erişiminiz varsa WHM üzerinde Tweak Settings içindeki "Max hourly emails per domain" değeri limiti gösterir. Limiti aştığınızda dönen bounce mesajı da sayıyı parantez içinde yazar, yani bir kez aştıysanız değeri zaten öğrenmiş olursunuz. Sadece sayıyı değil, "başarısız mesaj yüzdesi" limitini de sorun; çoğu askıya alma o eşikten kaynaklanır.
Mailler gidiyor ama spam klasörüne düşüyor, sebebi limit mi#
Hayır, spam klasörü ile limit ayrı sorunlardır. Limit aşımında mail hiç ulaşmaz ve size bounce döner; spam klasörü ise mailin ulaştığı ama güvenilir bulunmadığı anlamına gelir. Bunun sebebi genelde eksik veya hizalanmamış SPF/DKIM kayıtları, kötü IP itibarı, yüksek şikâyet oranı ya da spam tetikleyen içeriktir. Teşhis için önce mesaj başlıklarındaki kimlik doğrulama sonuçlarına bakın, sonra IP'nizi kara liste sorgusundan geçirin.
Bülten için ayrı alan adı mı kullanmalıyım#
Ayrı bir alt alan adı kullanmanız güçlü biçimde tavsiye edilir. Pazarlama gönderimi doğası gereği daha yüksek şikâyet oranı üretir; bunu ana alan adınızdan yaparsanız fatura, sipariş ve şifre sıfırlama mailleriniz de aynı itibardan etkilenir. kampanya.sirketiniz.com gibi bir alt alan adı, DKIM ve SPF kayıtlarını ayrı yönetmenize ve sorunu izole etmenize imkân verir. Tamamen farklı bir alan adı almak ise marka tanınırlığını düşürdüğü için genelde daha kötü sonuç verir.
Satın aldığım listeye gönderim yapabilir miyim#
Yapamazsınız; hem hukuken hem teknik olarak yasaktır. Ticari elektronik ileti onayı kişiye ve gönderene özeldir, devredilemez; İYS'ye kaydı olmayan bir listeye gönderim idari yaptırım doğurur. Teknik tarafta ise satılan listeler yoğun biçimde terk edilmiş adres ve spam tuzağı içerir; tek bir tuzağa düşen gönderim IP'nizi doğrudan kara listeye sokabilir. Bu tür bir gönderimden sonra itibarı toparlamak haftalar sürer.
Gönderimi kaç parçaya bölmeliyim#
Yeni bir IP kullanıyorsanız günlük hacmi kademeli artırın, oturmuş bir IP'de ise alıcı alan adı başına hız sınırı koymanız yeterlidir. Isıtma döneminde ilk gün birkaç yüz, sonraki günlerde şikâyet oranı bozulmadıkça günlük hacmi yaklaşık iki katına çıkarmak işe yarayan bir tempodur. Oturmuş bir gönderim IP'sinde ise toplam sayıdan çok eşzamanlılık önemlidir; alan adı başına 2–3 bağlantı ve dakikada birkaç yüz mesaj çoğu senaryoda sorunsuz çalışır.
İşlem mailleri ile pazarlama maillerini aynı yerden göndermek sakıncalı mı#
Sakıncalıdır, çünkü ikisinin risk profili farklıdır. Şifre sıfırlama maili gecikemez ama kimse ona "spam" demez; bülten ise gecikebilir fakat düzenli olarak şikâyet toplar. İkisini aynı IP ve aynı alan adından gönderirseniz, bültenin topladığı şikâyetler yüzünden şifre sıfırlama mailiniz de spam'e düşer. Doğru kurgu, işlem maillerini kurumsal kutunuzun/hosting'inizin SMTP'sinden, pazarlama maillerini ayrı bir alt alan adı ve ayrı gönderim IP'si üzerinden göndermektir.
Kendi mail sunucumu kurmak mı yoksa hazır servis mi daha iyi#
Kontrol istiyorsanız ve teknik bakım yapabilecek biri varsa kendi sunucunuz, hızlı sonuç istiyorsanız hazır servis daha iyidir. Kendi MTA'nızda PTR kaydı, DKIM anahtar yönetimi, kara liste takibi, TLS sertifikası ve bounce işleme sizin sorumluluğunuzdadır; bunlar kurulum değil süreklilik gerektiren işlerdir. Buna karşılık gönderim itibarınız tamamen size ait olur ve hacim başına maliyet uzun vadede düşer. Ayda birkaç bin maili aşmayan işletmeler için hazır bir SMTP altyapısı genelde daha akılcıdır.
Kapanış#
Toplu mail göndermenin özeti şudur: paylaşımlı hosting bu iş için tasarlanmamıştır, limitler keyfî değil koruyucudur ve limiti aşan mesaj ertelenmez, silinir. Düzenli gönderim yapacaksanız gönderimi ana altyapınızdan ayırın, ayrı bir alt alan adı ve gönderim IP'si kullanın, IP'yi kademeli ısıtın, SPF/DKIM/DMARC/PTR dörtlüsünü hizalı biçimde kurun ve hard bounce ile şikâyet oranını her gönderimde ölçün. Hukuki taraf da teknik tarafla eşit ağırlıktadır: onayı olmayan listeye gönderim, teknik olarak mükemmel kurulmuş bir altyapıyı bile birkaç günde kara listeye taşır.
Bu işi kendiniz kurmak istemiyorsanız Clou.TR tarafında hazır seçenekler var: düzenli bülten ve kampanya gönderimi için ayrı gönderim IP'si ve hazır yapılandırılmış bir MTA ile gelen SMTP sunucu paketleri, günlük yazışma ve işlem mailleri için kurumsal e-posta hizmeti, listenin kurgusundan içerik ve raporlamaya kadar süreci devretmek isteyenler için e-posta pazarlama hizmeti bulunuyor. Gönderim öncesi bağlantı ve port testlerinizi ise ücretsiz SMTP test aracı ile yapabilirsiniz.