Müşterinize teklif gönderiyorsunuz, ulaşmıyor. Siparişi tamamlayan kullanıcıya onay maili gidiyor, gelen kutusunda yok. Kendinize test attığınızda geliyor ama karşı taraf "spam klasöründeydi" diyor. Maillerim spam kutusuna düşüyor şikâyeti Türkçe'de en çok aranan e-posta sorunudur ve neredeyse her seferinde aynı yanlış yerden çözülmeye çalışılır: konu başlığındaki kelimeler değiştirilir, mail tasarımı sadeleştirilir, imzadaki resim kaldırılır. Bunlar 2010'ların tavsiyeleridir ve bugünkü filtrelerin karar mekanizmasında neredeyse hiç ağırlıkları yoktur.
Bugün bir mailin spam'e düşmesinin sebebi büyük olasılıkla içeriği değil, kimliğidir. Alıcı sunucu önce "bu mesaj gerçekten bu alan adından mı gönderildi" sorusunu sorar, sonra "bu gönderici geçmişte nasıl davrandı" sorusunu. İçerik incelemesi bu ikisinin çok gerisinde kalır. Bu yazıda size bir teşhis sırası vereceğim: hangi katmanı önce kontrol edeceğiniz, her katmanın nasıl test edileceği ve bulduğunuz sonucun ne anlama geldiği. Sırayla ilerlerseniz sorunun hangi katmanda olduğunu genellikle on beş dakikada bulursunuz.
Teşhis Sırası: Beş Katman#
Mail teslimatı beş katmanlı bir kapıdır ve alttaki katman geçilmeden üsttekinin önemi yoktur. Sorununuzu ararken bu sırayı bozmayın:
| Sıra | Katman | Ne sorar | Başarısızsa sonuç |
|---|---|---|---|
| 1 | Kabul | Sunucu mesajı almayı kabul etti mi | Geri dönen mesaj (bounce) |
| 2 | Kimlik doğrulama | SPF/DKIM geçti mi | Spam veya sessiz eleme |
| 3 | Hizalama | Doğrulanan alan adı, görünen adresle aynı mı | DMARC başarısız, spam |
| 4 | İtibar | Bu IP/alan adı geçmişte ne yaptı | Spam, gecikmeli teslimat |
| 5 | İçerik ve etkileşim | Mesaj ve alıcı davranışı | Spam |
Türkçe kaynakların büyük kısmı doğrudan beşinci katmanı anlatır. Oysa gerçek hayatta gördüğüm vakaların yaklaşık dörtte üçü ikinci ve üçüncü katmanda çözülür — yani DNS kayıtlarında, mailin içeriğinde değil.
Katman 1: Mail Spam'e mi Düşüyor, Yoksa Hiç Ulaşmıyor mu#
Bunu ayırt etmeden hiçbir şey yapmayın, çünkü iki durumun çözümü farklıdır. Üç olasılık vardır:
- Geri dönüyor. Gönderdikten saniyeler veya dakikalar sonra "Mail Delivery Subsystem" başlıklı bir mesaj gelir. Bu iyi haberdir: içinde nedeni yazar.
- Spam klasörüne düşüyor. Alıcı mesajı buluyor ama Önemsiz/Spam klasöründe.
- Sessizce kayboluyor. Geri dönen mesaj yok, spam klasöründe de yok. Buna sessiz eleme (silent drop) denir ve en çok kafa karıştıranı budur.
Geri dönen mesaj varsa gövdesindeki üç haneli kodu okuyun. 550 kalıcı reddir, 421/451 geçici reddir ve genelde hız sınırlamasıdır. Kodların ne anlama geldiğini smtp hata kodları yazısında tek tek bulabilirsiniz. Reddin metninde çoğu zaman sebebi de yazar:
550 5.7.26 This mail has been blocked because the sender is
unauthenticated. Gmail requires all senders to authenticate with
either SPF or DKIM.
Bu satırı gördüyseniz teşhis bitti: ikinci katmandasınız, DNS kayıtlarınız eksik.
Sessiz eleme yaşıyorsanız — özellikle alıcı Gmail ise — sorun neredeyse kesinlikle kimlik doğrulama ya da itibar tarafındadır. Bu senaryonun tamamı Gmail'e mail gitmiyor yazısında ayrıca ele alınıyor.
Katman 2: SPF, DKIM ve DMARC Kayıtlarını Kontrol Edin#
Bu üç kayıt, "bu alan adı adına mail göndermeye kim yetkili" sorusunun cevabıdır ve üçü de alan adınızın DNS bölgesinde durur. Kontrolü tarayıcıdan değil, doğrudan DNS'e sorarak yapın.
SPF kaydını görün:
dig +short TXT siteniz.com | grep spf1
Beklenen çıktı şuna benzer:
"v=spf1 include:_spf.sunucunuz.com ip4:203.0.113.10 -all"
Üç şeye bakın. Kayıt tek olmalı — iki ayrı SPF kaydı olan alan adında SPF tamamen geçersizdir ve bu, sahada gördüğüm en yaygın tek hatadır. include: ve ip4: toplamı on DNS sorgusunu aşmamalı; aşarsa yine geçersiz sayılır. Sonu -all (katı) veya ~all (yumuşak) olmalı; +all yazılmış bir kayıt herkese izin verir ve yok hükmündedir.
DKIM kaydını görün. DKIM bir seçici (selector) altında durur, yani adını bilmeniz gerekir. cPanel'de seçici genelde defaulttır:
dig +short TXT default._domainkey.siteniz.com
Çıktı v=DKIM1; k=rsa; p=MIGfMA0GCSq... biçiminde uzun bir anahtarla başlamalı. Boş dönüyorsa DKIM imzalama açık olsa bile alıcı doğrulayamaz — imza var, anahtar yok demektir. DKIM tarafındaki tipik hatalar için dkim doğrulaması başarısız yazısına bakın.
DMARC kaydını görün:
dig +short TXT _dmarc.siteniz.com
Kaydınız yoksa en azından izleme modunda bir tane ekleyin:
_dmarc.siteniz.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; fo=1"
p=none hiçbir mesajı engellemez, sadece rapor toplar. Bu raporlar sizin adınıza kimin mail gönderdiğini gösterir ve teşhisin en değerli aracıdır. Üç kaydın birbiriyle ilişkisi ve tam sözdizimi için spf dkim dmarc yazısı referans niteliğindedir.
Katman 3: Hizalama — Testten Geçip Yine Spam'e Düşmenin Sebebi#
Bir mail SPF ve DKIM testlerini geçtiği hâlde DMARC'tan kalabilir; buna hizalama (alignment) sorunu denir ve teşhis edilmesi en zor katmandır çünkü tüm kayıtlar "yeşil" görünür.
Sebebi şudur: bir e-postada birden fazla "gönderen" vardır.
| Alan | Nerede görünür | Neyi doğrular |
|---|---|---|
Return-Path (zarf gönderici) | Başlıklarda, kullanıcı görmez | SPF bunu kontrol eder |
From: | Alıcının gördüğü adres | DMARC bunu kontrol eder |
DKIM d= etiketi | İmzada | DKIM'in imzaladığı alan adı |
DMARC'ın istediği şey, SPF'in doğruladığı alan adının veya DKIM'in imzaladığı alan adının, kullanıcının gördüğü From: adresiyle aynı olmasıdır. Pratikte bu şöyle bozulur: sitenizdeki iletişim formu, ziyaretçinin adresini From: alanına yazar. Yani mail sizin sunucunuzdan çıkar, From: alanında [email protected] yazar. SPF sizin sunucunuz için geçer, From: Gmail'i gösterir, hizalama tutmaz, mesaj spam'e düşer — ya da Gmail bunu doğrudan sahtecilik sayar.
Doğru kurulum: form maillerinde From: her zaman kendi alan adınız olsun, ziyaretçinin adresi Reply-To: başlığına yazılsın.
$headers = "From: Site Formu <[email protected]>\r\n";
$headers .= "Reply-To: " . $ziyaretciAdresi . "\r\n";
Böylece kimlik doğrulama tutar ve "Yanıtla" dediğinizde yine ziyaretçiye gider.
Hizalamayı kontrol etmenin en hızlı yolu, kendinize bir Gmail adresine test maili atıp mesajı açtıktan sonra üç nokta menüsünden Orijinali göster demektir. Üstteki özet tablosunda şunu görmelisiniz:
SPF: PASS with IP 203.0.113.10 (siteniz.com)
DKIM: PASS with domain siteniz.com
DMARC: PASS
DKIM satırında farklı bir alan adı yazıyorsa (örneğin sunucunuzun kendi hostname'i) hizalama yoktur; DKIM'i kendi alan adınız için yapılandırmanız gerekir.
Katman 4: IP ve Alan Adı İtibarı ile Kara Liste#
Kimlik doğrulaması tam olduğu hâlde mailler spam'e düşüyorsa sıradaki şüpheli itibardır. Burada üç ayrı şey kontrol edilir.
1. IP kara listede mi. Gönderim yaptığınız sunucunun genel IP'sini bulup kamuya açık kara liste veritabanlarında sorgulayın. Sunucudan çıkış IP'nizi öğrenmek için:
curl -s ifconfig.me
Listede çıkıyorsanız çıkış süreci listeye göre değişir; adımların tamamı mail blacklist sorgulama ve çıkma yazısında.
2. PTR (ters DNS) kaydı doğru mu. Gönderen IP'nin ters DNS kaydı, kendi hostname'inize çözülmeli ve o hostname de aynı IP'ye geri çözülmeli. Kontrol:
dig -x 203.0.113.10 +short
Boş dönüyorsa veya sağlayıcının genel static-203-0-113-10.isp.net biçimli varsayılan kaydını gösteriyorsa büyük posta sağlayıcılarında ciddi puan kaybedersiniz. PTR kaydı IP'nin sahibi tarafından ayarlanır, alan adı panelinden değil; ayrıntısı ptr kaydı ve ters dns yazısında.
3. Alan adı itibarı. IP temiz olsa bile alan adınızın kendi geçmişi vardır. Yeni satın alınmış bir alan adından ilk gün binlerce mail göndermek, en temiz teknik kurulumla bile spam'e düşer. Yeni bir alan adında günde birkaç düzine mailden başlayıp haftalar içinde artırmak (ısıtma) tek doğru yoldur.
Katman 5: İçerik, Gönderim Davranışı ve Etkileşim#
Bu katmana ancak ilk dördü temizse gelin. Burada da eski tavsiyelerin çoğu geçersizdir; gerçekten ağırlığı olan üç şey vardır.
Liste hijyeni. Var olmayan adreslere gönderim yapmak en hızlı itibar bozucudur. Bir toplu gönderimde 550 no such user oranınız yükselirse sağlayıcı sizi listesini temizlemeyen bir gönderici olarak sınıflar. Geri dönen adresleri listeden çıkarmak, konu başlığını değiştirmekten kat kat etkilidir.
Şikâyet oranı. Kullanıcının "Spam bildir" düğmesine basma oranı, sağlayıcıların en çok önemsediği sinyaldir. Büyük sağlayıcıların toplu göndericiler için beklediği eşik %0,3'ün altıdır; bunun üzerine çıkan bir gönderici hızla kısıtlanır. Bu yüzden "abonelikten çık" bağlantısını görünür yapmak, gizlemekten çok daha kârlıdır — çıkmak isteyen kullanıcı bulamazsa spam düğmesine basar.
Etkileşim. Açılmayan, tıklanmayan, yanıtlanmayan mailler zamanla otomatik olarak spam'e yönlendirilir. Hiç etkileşmeyen adresleri listeden çıkarmak toplam teslimat oranınızı yükseltir.
Buna karşılık şunlar bugün pratikte belirleyici değildir: konu başlığındaki "ücretsiz" kelimesi, mailin genişliği, yazı tipi boyutu, tek bir emoji, resim/metin oranı. İçerik kontrolü hâlâ vardır ama ancak kimlik ve itibar temizse devreye girer.
Toplu gönderim yapıyorsanız 2024'ten bu yana yürürlükte olan yeni kurallar da doğrudan sizi ilgilendirir: günde binlerce mail gönderen alan adları için DMARC kaydı ve tek tıkla abonelikten çıkma zorunlu hâle geldi. Ayrıntısı gmail yahoo yeni gönderici kuralları yazısında.
Paylaşımlı Hosting'ten Gönderiyorsanız Özel Durum#
Paylaşımlı barındırmada sunucunun çıkış IP'sini onlarca hesapla paylaşırsınız. Aynı IP'den kötü davranan bir komşu, sizin kimlik doğrulamanız kusursuz olsa bile itibarınızı düşürür. Bunu doğrulamanın pratik yolu şudur: aynı maili farklı bir ağdan, farklı bir sunucudan gönderip sonucu karşılaştırın. Bir sunucudan spam'e düşen, ötekinden gelen kutusuna giren aynı içerik, sorunun IP itibarında olduğunu kanıtlar.
Düzenli olarak yüksek hacimli gönderim yapıyorsanız (bülten, sipariş bildirimi, kampanya) paylaşımlı IP uzun vadede sürdürülebilir değildir. Bu noktada ya kendi IP'sine sahip bir gönderim sunucusuna geçilir ya da gönderim ayrı bir servise devredilir. Sunucu tarafında kendi kurulumunuzu yapacaksanız gönderim ve okuma portlarının doğru açılması gerekir; hızlı bir kontrol için smtp test aracı ile port ve TLS uyumunu doğrulayabilirsiniz.
Hangi Belirti Hangi Katmanı İşaret Eder#
Sahada en çok karşılaştığım belirtilerin katman eşlemesi:
| Belirti | En olası katman | İlk bakılacak yer |
|---|---|---|
550 ... unauthenticated reddi | 2 | SPF ve DKIM kayıtları |
| Hiç bounce yok, mail kayıp | 2 veya 4 | DKIM hizalaması, IP itibarı |
| Kendime gidiyor, dışarıya gitmiyor | 2 | Alan adının DNS kayıtları |
| İletişim formu spam'e, elle yazılan mail temiz | 3 | Formun From: başlığı |
| Bir sağlayıcıya gidiyor, ötekine gitmiyor | 4 | Kara liste, PTR kaydı |
| Uzun süre iyiydi, birden bozuldu | 4 | Kara liste, hesap ele geçirilmesi |
| Toplu gönderimde düşüyor, tekli temiz | 5 | Liste hijyeni, şikâyet oranı |
421 / 451 geçici hatalar | 4 | Gönderim hızı, itibar |
"Uzun süre iyiydi, birden bozuldu" satırına dikkat edin. Bu tabloda en çok atlanan senaryodur ve genellikle bir hesabın ele geçirilip sunucunuzdan spam gönderilmesi anlamına gelir. Böyle bir durumda giden mail kuyruğunu kontrol etmek ilk iştir.
60 Dakikalık Uygulama Planı#
Sorunu kalıcı olarak kapatmak için sırayla şunları yapın:
- Bir test maili gönderip başlıkları okuyun. SPF, DKIM, DMARC satırlarının üçünü de not edin. Hangisi
FAILise oradan başlayın. - SPF kaydını tekilleştirin. Birden fazla
v=spf1kaydı varsa hepsini tek kayıtta birleştirin, sonuna-allkoyun. - DKIM'i kendi alan adınız için açın. Barındırma panelinde e-posta kimlik doğrulama bölümünden etkinleştirip üretilen TXT kaydını DNS'e ekleyin.
d=etiketinin kendi alan adınızı göstermesi şart. - DMARC'ı
p=noneile ekleyin. Bir hafta rapor toplayın, kimin sizin adınıza mail gönderdiğini görün. - PTR kaydını düzelttirin. IP'nin sahibi olan taraftan hostname'inize işaret eden bir ters DNS kaydı isteyin.
- Kara liste taraması yapın. Çıkanlar için delisting başvurusunu aynı gün gönderin.
- Form maillerini düzeltin.
From:kendi alan adınız,Reply-To:ziyaretçi. - Bir hafta sonra DMARC raporlarına bakın. Hizalama oranı %95'in üzerine çıktıysa
p=quarantine'e geçebilirsiniz.
Bu sekiz adımı tamamlayan bir alan adında spam sorunu vakaların büyük çoğunluğunda kapanır ve bir daha açılmaz — çünkü düzeltilen şey bir mesaj değil, alan adının kimliğidir.
Sıkça Sorulan Sorular#
Maillerim neden birden spam kutusuna düşmeye başladı#
Ani bozulmanın en sık iki sebebi kara listeye girmek ve bir posta hesabının ele geçirilmesidir. Sunucunuzdan sizin haberiniz olmadan toplu spam gönderildiyse IP'niz kısa sürede listelenir ve daha önce sorunsuz giden mailleriniz de etkilenir. Üçüncü ihtimal, DNS tarafında yapılan bir değişikliğin SPF kaydını bozmuş olmasıdır; yeni bir servis eklerken ikinci bir v=spf1 kaydı oluşturmak SPF'i tamamen geçersiz kılar. Önce giden mail kuyruğunu ve şifre değişikliklerini, sonra SPF kaydınızın tekilliğini kontrol edin.
SPF DKIM DMARC kurdum ama mailler hâlâ spam'e düşüyor#
Kayıtların var olması yetmez, hizalamalarının doğru olması gerekir. En yaygın durum, DKIM imzasının sunucunun kendi hostname'iyle atılması ve kullanıcının gördüğü From: adresiyle eşleşmemesidir. Bir test maili gönderip alıcı tarafta orijinal başlıklara bakın; DKIM satırındaki alan adı sizin alan adınız değilse hizalama yok demektir. İkinci ihtimal, teknik tarafın temiz ama itibarın bozuk olmasıdır; bu durumda kara liste ve PTR kaydı kontrolüne geçin.
Mail spam'e düşmesi ile hiç ulaşmaması arasında ne fark var#
Spam'e düşen mail teslim edilmiştir, sadece farklı bir klasördedir; hiç ulaşmayan mail ise ya reddedilmiştir ya da sessizce elenmiştir. Reddedilmişse size bir geri dönen mesaj gelir ve içinde neden yazar, bu en kolay teşhis edilen durumdur. Sessiz eleme ise geri bildirim vermez ve neredeyse her zaman kimlik doğrulama eksikliğinden veya çok düşük gönderici itibarından kaynaklanır. Bu yüzden ilk adım her zaman "geri dönen mesaj var mı" sorusudur.
Konu başlığındaki kelimeler mailin spam'e düşmesine sebep olur mu#
Tek başına hemen hemen hiç. Modern filtreler kararlarını önce kimlik doğrulama ve gönderici itibarına, sonra alıcı davranışına bakarak verir; kelime bazlı içerik puanlaması bu sinyallerin çok gerisinde kalır. Kimliği doğrulanmış, itibarı iyi bir göndericinin "ücretsiz kampanya" konulu maili gelen kutusuna girer; kimliği doğrulanmamış bir göndericinin en masum maili spam'e düşer. İçerik ancak diğer sinyaller nötr olduğunda terazi belirler.
Kendime gönderdiğim test maili geliyor ama müşteriye gitmiyor#
Bu klasik bir yanılgıdır çünkü kendi posta kutunuza gönderdiğiniz mail çoğu zaman sunucunun içinde kalır ve dış kimlik doğrulama kontrollerinden hiç geçmez. Gerçek testi yapmak için farklı sağlayıcılarda hesaplarınız olmalı ve mailin başlıklarını orada incelemelisiniz. En az iki farklı büyük sağlayıcıya test gönderin; birine gidip ötekine gitmiyorsa sorun büyük ihtimalle IP itibarındadır, ikisine de gitmiyorsa kimlik doğrulamadadır.
Yeni aldığım alan adından mail göndermeye başlarken nelere dikkat etmeliyim#
Hacmi kademeli artırın ve ilk günden toplu gönderim yapmayın. Yeni bir alan adının hiç geçmişi yoktur ve sağlayıcılar geçmişi olmayan göndericilere temkinli davranır; ilk günlerde onlarca mailden başlayıp haftalar içinde yükselmek gerekir. Gönderime başlamadan önce SPF, DKIM ve DMARC kayıtlarının üçünü de kurun, PTR kaydını düzelttirin ve ilk gönderimleri gerçekten sizi bekleyen, açıp yanıtlayacak kişilere yapın. İlk haftalardaki etkileşim, alan adınızın uzun vadeli itibarını belirler.
Paylaşımlı hosting yerine kendi sunucumdan göndersem sorun çözülür mü#
Kendi IP'nize sahip olmak kontrolü size verir ama otomatik olarak daha iyi teslimat sağlamaz. Kendi sunucunuzda PTR kaydı, DKIM imzalama, geri dönen mesaj yönetimi ve kara liste takibi sizin sorumluluğunuza geçer; bunlar yapılmazsa temiz bir IP birkaç hafta içinde kirlenir. Buna karşılık paylaşımlı IP'de komşularınızın davranışını hiç kontrol edemezsiniz. Düzenli ve yüksek hacimli gönderim yapıyorsanız kendi gönderim sunucunuza geçmek doğru karardır, ancak yönetim yükünü de üstlenmeniz gerekir.
Kapanış#
Mailin spam'e düşmesi bir içerik sorunu değil, bir kimlik sorunudur. Doğru teşhis sırası şudur: önce mesajın gerçekten teslim edilip edilmediğini belirleyin, sonra SPF ve DKIM kayıtlarını doğrulayın, ardından hizalamayı kontrol edin, sonra IP ve alan adı itibarına bakın; içerik ve gönderim davranışı ancak en sonda gelir. Bu sırayı takip ederseniz sorunun hangi katmanda olduğunu kısa sürede bulur ve tek seferde kalıcı olarak çözersiniz. Konu başlığını değiştirerek geçirilen saatlerin sonuç vermemesinin sebebi, sorunun hiçbir zaman orada olmamasıdır.
Bu kurulumu kendiniz yönetmek istemiyorsanız işi üstlenen seçenekler var: alan adınıza ait kurumsal posta kutuları için e-posta hizmetine, kendi IP'niz üzerinden yüksek hacimli gönderim yapacaksanız kimlik doğrulaması hazır kurulu gelen SMTP sunucu paketlerine bakabilirsiniz. Bülten ve kampanya gönderimini bir düzene oturtmak istiyorsanız e-posta pazarlama, sunucu tarafındaki DNS ve posta yapılandırmasını devretmek istiyorsanız sunucu yönetimi sayfaları ilgili çözümleri anlatıyor.