Bir bankanın uygulamasına giriş yapmak için doğrulama kodu istediniz. Kod mailine on beş dakika sonra ulaştığınızda ekrandaki geri sayım çoktan bitmiş, kod geçersiz olmuştu. İkinci kez istediniz, bu sefer saniyeler içinde geldi. Aynı gün öğleden sonra yeni bir tedarikçiden gelen sipariş onayı da benzer şekilde gecikti; ama o firmanın sonraki mailleri anında düştü.
Bu davranış çok belirgin bir imzaya sahiptir ve teşhisi kolaylaştırır: gecikme rastgele değil, sadece o gönderenden gelen ilk mailde yaşanıyor. Sunucu yavaş değil, DNS bozuk değil, kutunuz dolu değil. Aradaki fark, posta sunucunuzda muhtemelen açık olan bir spam önlemidir: greylisting, yani gri liste.
Bu yazıda greylisting'in tam olarak ne yaptığını, neden gecikmenin sıklıkla tam 15 dakika olduğunu, sorunun gerçekten greylisting kaynaklı olup olmadığını günlüklerden nasıl doğrulayacağınızı ve en önemlisi ne yapmanız gerektiğini ele alacağız. Baştan söyleyeyim: doğru cevap çoğu kurulumda "kapat" değil, "doğru yerleri beyaz listeye al" oluyor. Kapatmanın gerçek maliyetini de rakamlarla tartışacağız.
Belirti: Her Mail Değil, Sadece İlk Mail Gecikiyor#
Greylisting kaynaklı bir gecikmeyi diğer mail sorunlarından ayıran dört işaret vardır:
- Gecikme gönderen bazlıdır. Yıllardır yazıştığınız muhasebeciden gelen mail anında düşer, ilk kez yazan bir müşteriden gelen mail gecikir.
- Gecikme tekrarlanmaz. Aynı gönderen bir kez geçtikten sonra günlerce sorunsuz mail atar.
- Süre belirli bir bandın içindedir: tipik olarak 5 ile 20 dakika arası, en sık 15 dakika.
- Mail kaybolmaz. Spam klasörüne de düşmez; sadece geç gelir.
Buna karşılık mail hiç gelmiyorsa, saatlerce gelmiyorsa veya spam klasörüne düşüyorsa sorun greylisting değildir. Hiç gelmeyen mailler için e-postalarım gelmiyor: MX sorunu yazısındaki adımlar, spam klasörüne düşme sorunu için ise mailler spama düşüyor rehberi doğru başlangıç noktasıdır.
Bir başka önemli ayrım: greylisting iki yönlü bir sorun olabilir. Sizin sunucunuz gelen maili geciktiriyor olabileceği gibi, sizin gönderdiğiniz mail de karşı tarafın gri listesine takılıyor olabilir. Müşterileriniz "sizin mailleriniz hep geç geliyor" diyorsa ikinci senaryodadır ve çözümü bambaşkadır; buna aşağıda ayrıca değineceğiz.
Greylisting Nedir ve İlk Denemeyi Neden Reddeder#
Greylisting, gelen bir maili kalıcı olarak reddetmek (kara liste) ya da kabul etmek (beyaz liste) yerine, geçici olarak reddedip gönderenin ısrarını ölçen bir yöntemdir.
Mekanizma üç bilgiden oluşan bir kimlik üzerine kuruludur; buna üçlü (triplet) denir:
- Bağlanan sunucunun IP adresi
- Zarf üzerindeki gönderen adresi
- Zarf üzerindeki alıcı adresi
Bu üçlü daha önce hiç görülmemişse posta sunucunuz mesajı almaz ve karşı tarafa geçici bir hata döner. Yanıt kabaca şu şekildedir:
451 4.7.1 Greylisted, please try again later
Buradaki 4 ile başlayan kod kritiktir. SMTP'de 5 ile başlayan kodlar kalıcı reddi, 4 ile başlayanlar geçici bir sorunu ifade eder. Kurallara uyan her posta sunucusu 4xx gördüğünde mesajı kuyruğunda tutar ve bir süre sonra yeniden dener. Kod ayrıntıları için SMTP hata kodları ve anlamları yazısına bakabilirsiniz.
Yöntemin çalışma mantığı buradadır: spam gönderen yazılımların büyük bölümü hız üzerine kuruludur. Milyonlarca adrese tek atış yapar, kuyruk tutmaz ve reddedilen mesajı yeniden denemez. Meşru bir posta sunucusu ise denemek zorundadır; bu, protokolün gereğidir. Dolayısıyla "ısrar etmek" ucuz bir meşruluk kanıtına dönüşür ve hiçbir içerik analizi yapmadan, hiçbir sunucu kaynağı harcamadan spam trafiğinin kayda değer bir bölümü elenir.
İkinci deneme geldiğinde üçlü tanınır, mesaj kabul edilir ve o üçlü belirli bir süre boyunca beyaz listede tutulur. İşte "ilk mail geç, sonrakiler anında" davranışının sebebi budur.
Neden Tam 15 Dakika#
Bu sorunun cevabı sizin sunucunuzda değil, gönderen tarafın yeniden deneme zamanlayıcısında saklıdır. Gri liste "5 dakika bekle" dese bile, mailin ne zaman geleceğini gönderenin kuyruk politikası belirler.
Exim, cPanel sunucularının varsayılan posta yazılımıdır ve öntanımlı yeniden deneme kuralı F,2h,15m; G,16h,1h,1.5; F,4d,6h biçimindedir. Bunun ilk parçası şu anlama gelir: ilk iki saat boyunca 15 dakikada bir yeniden dene. Yani gönderen taraf da bir cPanel sunucusuysa, gri liste süresi 5 dakika olsa dahi mail size 15 dakika sonra ulaşır. Türkiye'deki kurumsal mail altyapılarının önemli bir kısmı cPanel/Exim üzerinde çalıştığı için bu senaryo çok sık yaşanır.
| Gönderen taraftaki yazılım | İlk yeniden deneme | Pratik sonuç |
|---|---|---|
Exim (varsayılan F,2h,15m kuralı) | 15 dakika sonra | Klasik "15 dakika geç geldi" vakası |
Postfix (minimal_backoff_time 300 sn) | 5 dakika sonra | Gecikme fark edilir ama tolere edilebilir |
| Büyük sağlayıcılar (Gmail, Microsoft 365) | Genellikle dakikalar içinde | Çoğu zaman kullanıcı hiç fark etmez |
| Basit SMTP betikleri, bazı API entegrasyonları | Hiç denemez | Mail hiç gelmez, sessizce kaybolur |
Son satır tablodaki en tehlikeli maddedir ve greylisting tartışmasının kalbini oluşturur. Doğrulama kodu, sipariş bildirimi veya parola sıfırlama gibi işlemsel mailleri gönderen bazı basit entegrasyonlar kuyruk yönetimi yapmaz; 451 cevabını aldıklarında mesajı kuyruğa koymak yerine "gönderilemedi" diye işaretleyip düşerler. Bu durumda gecikme değil, tam bir kayıp yaşanır. WordPress kaynaklı benzer bir sorunu araştırıyorsanız WordPress şifre sıfırlama maili gelmiyor yazısı tamamlayıcı olacaktır.
Postfix kullanıyorsanız kendi sunucunuzun deneme aralıklarını doğrulayabilirsiniz:
# Postfix'in yeniden deneme zamanlayıcı varsayılanları
postconf -d minimal_backoff_time maximal_backoff_time queue_run_delay
Gecikmenin Greylisting Kaynaklı Olduğunu Doğrulama#
Tahmin yürütmek yerine günlüğe bakın. cPanel/Exim çalıştıran bir sunucuda gri liste kayıtları doğrudan aranabilir:
# Son greylisting kayıtları
grep -i greylist /var/log/exim_mainlog | tail -20
Belirli bir gönderene ait mesajın tüm yolculuğunu görmek için exigrep daha kullanışlıdır; bu komut mesaja ait bütün satırları birlikte getirir:
# Bir gönderenin mesajlarına ait tüm günlük satırları
exigrep '[email protected]' /var/log/exim_mainlog | tail -40
Çıktıda mesajın önce geçici olarak reddedildiğini, ardından on beş dakika sonraki satırda kabul edildiğini görürseniz teşhis kesinleşmiştir.
Kök erişiminiz yoksa panelden de yaklaşık bir sonuca varabilirsiniz:
- cPanel'de E-posta > Teslimatı İzle bölümünü açın.
- Gecikmeli gelen mailin alıcı adresini yazıp arayın.
- Kayıtta mesajın kabul edildiği saati, mailin başlıklarındaki gönderim saatiyle karşılaştırın.
- Aradaki fark 5-20 dakika bandındaysa ve aynı gönderenin sonraki mailleri anında geldiyse, sebep gri listedir.
Mailin ham başlıklarındaki Received: satırları da işe yarar: en alttaki satır gönderenin kendi sunucusundaki zamanı, en üstteki satır sizin sunucunuzun kabul zamanını gösterir. Aradaki boşluk gecikmenin tamamıdır.
Greylisting Kapatılmalı mı#
Karar vermeden önce iki tarafın da bedelini görmek gerekir.
Kapatmanın maliyeti. Gri liste, hiçbir kaynak harcamadan çalışan ucuz bir filtredir. Kapattığınızda daha önce en kapıda elenen otomatik spam trafiğinin tamamı içeri girer ve bu yükü artık içerik tarayan sistemler karşılamak zorunda kalır. Sonuçları şunlardır: spam klasörünüzdeki günlük hacim belirgin biçimde artar, filtreler daha çok yanlış pozitif üretmeye başlar (yani meşru mailler spam'e düşer) ve sunucunun tarama yükü büyür. Paylaşımlı bir sunucuda bu yük yalnızca sizi etkilemez.
Açık bırakmanın maliyeti. Gecikme, kullanıcı deneyimini doğrudan bozar. Doğrulama kodlarının geçerlilik süresi çoğu serviste 5-10 dakikadır; 15 dakika geciken bir kod işlevsizdir. Sipariş onayı, randevu hatırlatması ve kargo bildirimi gibi zamana duyarlı maillerde de aynı sorun yaşanır. Üstelik yukarıda gördüğümüz gibi bazı basit entegrasyonlarda gecikme değil kayıp söz konusudur.
İki maliyet arasındaki dengeyi kuran çözüm, ikisinden birini seçmek değildir. Doğru yaklaşım şudur: greylisting açık kalsın, ama zamana duyarlı mail gönderenler filtrenin dışında tutulsun. cPanel bunun için üç ayrı mekanizma sunar ve çoğu kurulumda bu mekanizmalar hiç yapılandırılmadan bırakılmıştır.
Kapatmanın tek başına doğru olduğu tek senaryo, sunucunun zaten güçlü bir dış filtre arkasında çalışmasıdır. Gelen mailleriniz önce bir güvenlik ağ geçidinden geçiyorsa, sunucunuza ulaşan trafik zaten temizdir ve gri liste sadece gecikme üretir.
WHM Greylisting Ayarları Ne İşe Yarar#
Sunucu yönetimi sizdeyse ayarlar WHM > Email > Greylisting altındadır. Üç zamanlayıcının ne yaptığını bilmeden değiştirmek, gecikmeyi azaltmak yerine artırabilir.
| Ayar | Varsayılan | Ne yapar |
|---|---|---|
| Initial Deferral Period | 5 dakika (en fazla 240) | Yeni bir üçlünün reddedileceği ilk bekleme süresi |
| Resend Acceptance Period | 240 dakika (en fazla 1440) | İkinci denemenin kabul edileceği zaman penceresi |
| Record Expiration Time | 4320 dakika, yani 3 gün (en fazla 43200) | Kabul edilmiş bir üçlünün beyaz listede kalma süresi |
| Bypass Greylisting for Hosts with Valid SPF Records | Açık | SPF doğrulaması geçen gönderenleri hiç geciktirmez |
Üç ayarın pratik anlamı şudur:
- Initial Deferral Period'ı düşürmek genelde işe yaramaz. 5 dakikayı 1 dakikaya indirseniz bile, gönderen Exim ise ilk denemesini yine 15 dakika sonra yapacaktır. Gecikmeyi belirleyen sizin süreniz değil, karşı tarafın zamanlayıcısıdır.
- Record Expiration Time'ı uzatmak gerçekten işe yarar. Varsayılan 3 gün, ayda bir yazışan bir müşterinin her seferinde yeniden geciktirilmesi demektir. Bu süreyi birkaç haftaya çıkarmak, tekrar eden gecikmelerin çoğunu ortadan kaldırır ve spam koruması açısından neredeyse hiçbir şey kaybettirmez.
- Resend Acceptance Period'ı kısaltmayın. Yavaş kuyruk politikası olan meşru sunucular bu pencerenin dışına düşerse mail tamamen kaybolur.
Bypass Greylisting for Hosts with Valid SPF Records seçeneği en değerli ayardır ve varsayılan olarak açıktır. Gönderenin alan adında geçerli bir SPF kaydı varsa ve bağlanan IP o kayıtta yetkilendirilmişse, mesaj hiç geciktirilmeden kabul edilir. Bu seçenek kapatılmışsa geri açmak, gecikmelerin büyük bölümünü tek hamlede çözer. SPF, DKIM ve DMARC kayıtlarının nasıl yapılandırıldığını SPF, DKIM ve DMARC rehberi yazısında bulabilirsiniz.
Kapatmak Yerine Beyaz Listeye Alma#
Gecikmeyi hedefli biçimde ortadan kaldırmanın üç yolu var.
Common Mail Providers listesi#
WHM'deki Greylisting arayüzünde büyük sağlayıcıların (Google, Microsoft, Yahoo, Apple ve benzerleri) hazır bir listesi bulunur ve tek tıkla güvenilir işaretlenebilir. Bu liste cPanel tarafından güncellenir, dolayısıyla sağlayıcılar IP bloklarını değiştirdiğinde sizin bir şey yapmanız gerekmez. Müşterilerinizin çoğu Gmail veya Microsoft 365 kullanıyorsa, sadece bu listeyi etkinleştirmek şikayetlerin çoğunu bitirir.
Trusted Hosts listesi#
Zamana duyarlı mail gönderen belirli kaynakları buraya elle eklersiniz: bankanızın bildirim sunucusu, e-ticaret altyapınızın gönderim IP'si, muhasebe programınızın SMTP çıkışı, e-fatura entegratörünüz. Kayıtlar tek IP veya CIDR bloğu olarak girilebilir.
Aynı ekranda, eklediğiniz bir IP'nin komşu bloğunu (ARIN kayıtlarına göre atanmış ağ aralığını) topluca güvenilir listeye ekleme seçeneği de vardır. Büyük sağlayıcıların gönderimi sırayla farklı sunuculardan yapması yaygın olduğu için bu seçenek işe yarar; ancak bloğun tamamına güvenmek anlamına geldiğini bilerek kullanın.
Alan adı bazında kapatma#
Beyaz listeler yetmiyorsa, greylisting'i sunucunun tamamı için değil yalnızca sorunlu alan adı için kapatabilirsiniz. cPanel'de E-posta > Greylisting Yapılandırma (Configure Greylisting) ekranı, hesabınıza bağlı her alan adı için ayrı bir açma/kapama anahtarı sunar.
Bu, en çok kullanılan pratik çözümdür: ana kurumsal alan adınızda gri listeyi açık tutar, doğrulama kodlarının geldiği ya da yoğun otomatik trafik alan ikinci alan adında kapatırsınız.
Kendi Sunucunuzda Postfix Kullanıyorsanız#
cPanel yerine düz bir Linux mail sunucusu işletiyorsanız greylisting genellikle postgrey ile yapılır. Bekleme süresini ve beyaz listeyi ayrı dosyalar yönetir.
Bekleme süresi servis parametrelerindedir:
# Debian/Ubuntu üzerinde postgrey seçenekleri
cat /etc/default/postgrey
# POSTGREY_OPTS="--inet=10023 --delay=60"
Beyaz listeye gönderen sunucuları eklemek için whitelist_clients dosyası kullanılır; hem düz ad hem düzenli ifade kabul eder:
# Belirli bir gönderim sunucusunu gri listeden muaf tut
echo 'mail.ornekbanka.com' >> /etc/postgrey/whitelist_clients
# Bir sağlayıcının tüm çıkış sunucularını muaf tut
echo '/^.*\.ornekesp\.net$/' >> /etc/postgrey/whitelist_clients
systemctl restart postgrey
Kuyrukta bekleyen mesajları ve bekleme sebeplerini görmek için:
# Kuyruk ve erteleme sebepleri
postqueue -p | head -30
Çıktıda karşı tarafın döndüğü 4xx mesajını görürsünüz; içinde greylist kelimesi geçiyorsa sebep bellidir.
Sizin Mailleriniz Geç Gidiyorsa#
Şimdiye kadar gelen mailleri konuştuk. Şikayet "bizim mailimiz müşteriye geç ulaşıyor" biçimindeyse, sizin sunucunuzdaki ayarın hiçbir önemi yoktur; karşı tarafın gri listesine takılıyorsunuz demektir. Bu durumda yapabileceğiniz üç şey var:
- SPF, DKIM ve DMARC kayıtlarınızı eksiksiz tamamlayın. Pek çok gri liste uygulaması, SPF doğrulaması geçen gönderenleri hiç geciktirmez. Bu tek başına en etkili adımdır.
- Kuyruk politikanızı kontrol edin. Gönderim tarafında yeniden deneme yapmayan basit bir betik kullanıyorsanız, ilk
4xxcevabında mailiniz kaybolur. İşlemsel mailleri gerçek bir SMTP kuyruğu üzerinden gönderin. - Sabit ve temiz bir çıkış IP'si kullanın. Sürekli değişen IP'lerden gönderim yapmak, her seferinde yeni bir üçlü üretir ve her mailin geciktirilmesine yol açar. Bu, gecikmenin kalıcı hale geldiği en yaygın sebeptir.
Karşı tarafa "gri listenizi kapatın" demek pratikte sonuç vermez ve gerekmez de; yukarıdaki üç madde tamamlandığında gecikmeler kendiliğinden ortadan kalkar. Gönderim tarafındaki teslimat sorunlarının daha geniş bir tablosu için mail geri dönüyor: bounce mesajı nasıl okunur yazısına bakabilirsiniz.
Sıkça Sorulan Sorular#
Greylisting maili siler mi, kaybolur mu?#
Kurallara uyan bir gönderen sunucu için hayır. Mesaj gönderenin kuyruğunda bekler ve yeniden denendiğinde kabul edilir; siz sadece geç alırsınız. Ancak yeniden deneme yapmayan basit gönderim betikleri ve bazı API entegrasyonları geçici reddi kalıcı hata gibi yorumlayıp mesajı düşürebilir. Bu yüzden doğrulama kodu gibi kritik mailleri gönderen kaynakların beyaz listeye alınması önerilir.
Greylisting süresini 1 dakikaya düşürsem gecikme biter mi?#
Genellikle bitmez. Gecikmeyi belirleyen sizin bekleme süreniz değil, gönderen sunucunun yeniden deneme zamanlayıcısıdır. Exim varsayılan olarak ilk denemesini 15 dakika sonra yapar; siz 1 dakika beklerseniz bile mail yine 15 dakika sonra gelir. Daha etkili ayar, kabul edilmiş kayıtların beyaz listede kalma süresini uzatmak ve zamana duyarlı gönderenleri güvenilir listeye eklemektir.
Doğrulama kodu mailleri hep geç geliyor, ne yapmalıyım?#
Önce mailin geldiği gönderen sunucusunu tespit edin; mailin ham başlıklarındaki Received: satırlarında bu bilgi yer alır. Ardından o IP adresini veya sunucu adını WHM'deki güvenilir sunucular listesine ekleyin. Kök erişiminiz yoksa barındırma desteğinden bu eklemeyi talep edin; gri listeyi tamamen kapatmaktan çok daha güvenli bir çözümdür.
Greylisting'i tamamen kapatırsam ne kadar spam artar?#
Kesin bir oran vermek mümkün değildir, çünkü sonuç sunucunuzdaki diğer filtrelere bağlıdır. Gri liste özellikle kuyruk tutmayan otomatik spam yazılımlarını kapıda eler; kapatıldığında bu trafik içerik tarayan filtrelere yüklenir. Pratikte spam klasöründeki hacim artar ve filtrelerin yanlış pozitif üretme olasılığı yükselir, yani meşru maillerin spam'e düşme riski büyür.
Aynı kişiden gelen mailler neden ayda bir yine gecikiyor?#
Kabul edilen üçlü kayıtları sonsuza kadar saklanmaz; varsayılan olarak birkaç gün sonra silinir ve gönderen yeniden bilinmeyen sayılır. Seyrek yazışan bir kişi bu süre dolduktan sonra tekrar geciktirilir. Kayıt saklama süresini birkaç haftaya çıkarmak bu tekrarları büyük ölçüde ortadan kaldırır ve koruma seviyesinden neredeyse hiçbir şey kaybettirmez.
Sunucumda greylisting açık mı, nasıl anlarım?#
cPanel kullanıyorsanız hesabınızdaki Greylisting Yapılandırma ekranı alan adı bazında durumu gösterir. Kök erişiminiz varsa Exim günlüğünde greylist kelimesini aratmak en hızlı yöntemdir; sonuç dönüyorsa özellik aktif demektir. Postfix kullanan bir sunucuda ise postgrey servisinin çalışıp çalışmadığını ve kuyruktaki ertelenmiş mesajların sebebini kontrol edebilirsiniz.