Gönderilen e-postalar alıcıya dakikalar, hatta saatler sonra ulaşıyorsa, sorunun kaynağı büyük olasılıkla SMTP sunucusundaki kuyruk mekanizmasıdır. Bu makalede, kuyruk gecikmelerinin teknik nedenlerini, hata kodlarını ve kalıcı çözüm yollarını adım adım ele alıyoruz.
mailq, Exim'de exim -bp komutlarıyla kuyruğu izleyin; postqueue -f ile zorla boşaltın ve sunucu günlüklerinde 4xx/5xx hata kodlarını inceleyin.RFC 5321 (Simple Mail Transfer Protocol), bir mesajın teslim edilememesi durumunda gönderici sunucunun mesajı belirli bir süre boyunca yeniden denemesini zorunlu kılar. Bu süre genellikle 4–5 gün olup sunucu yapılandırmasına göre değişir. Her deneme arasındaki bekleme süresi üstel olarak artar (exponential backoff); bu da yoğun trafik dönemlerinde kuyruğun hızla büyümesine yol açar.
SMTP oturumu sırasında alıcı sunucu iki tür yanıt kodu döndürür: 4xx (geçici hata) ve 5xx (kalıcı hata). Geçici hataların varlığında RFC 5321 Bölüm 4.5.4.1, gönderici sunucunun mesajı kuyrukta tutmasını ve belirli aralıklarla yeniden denemesini öngörür. Kalıcı hatalarda ise mesaj geri döner ve daha fazla deneme yapılmaz.
E-posta gecikmeleri genellikle aşağıdaki kategorilerde kümelenir:
Alıcı sunucu 421 Too many connections, 450 Requested mail action not taken veya 451 Requested action aborted gibi kodlarla mesajı geçici olarak reddedebilir. Bu durumda gönderen SMTP sunucusu mesajı kuyrukta bırakır ve sonraki deneme süresini bekler. Gmail, Yahoo ve Microsoft Exchange gibi büyük sağlayıcılar, kısa sürede çok fazla bağlantı geldiğinde bu kodu sıkça döndürür.
Google Postmaster Tools belgelerine göre Gmail, belirli bir IP adresinden saniyede kabul edebileceği mesaj sayısını kısıtlar. Bu eşiği aşan bağlantılar 421 4.7.0 Try again later hatasıyla geri çevrilir. Microsoft 365, benzer şekilde 421 4.3.2 Service not available yanıtını kullanır. Toplu e-posta göndericiler için IP havuzu (IP pool) oluşturmak ve gönderim hızını kademeli olarak artırmak (IP warming) bu sorunu büyük ölçüde azaltır.
SPF (RFC 7208), DKIM (RFC 6376) ve DMARC (RFC 7489) kayıtlarından biri eksik veya hatalıysa alıcı sunucu mesajı spam filtresine yönlendirebilir ya da geçici olarak reddedebilir. Özellikle DMARC politikası p=quarantine veya p=reject olarak ayarlanmış alan adlarına gönderilen mesajlar, SPF/DKIM uyumsuzluğunda anında kuyruktan düşer veya gecikmeye uğrar.
SMTP sunucusu, alıcı alan adının MX kayıtlarını çözerken DNS zaman aşımıyla karşılaşırsa mesajı kuyrukta tutar. Postfix bu durumu mail günlüğünde Host or domain name not found. Name service error şeklinde raporlar. Google Public DNS (8.8.8.8) veya Cloudflare (1.1.1.1) gibi güvenilir çözümleyiciler kullanmak bu tür sorunları minimize eder.
Sunucu disk alanı dolduğunda ya da işlemci kapasitesi yetersiz kaldığında kuyruk teslimini askıya alır. Postfix için maximal_queue_lifetime ve bounce_queue_lifetime parametreleri, bir mesajın kuyrukta kalabileceği azami süreyi belirler; varsayılan değer 5 gündür.
| Kod | Tür | Açıklama | Tipik Kaynak |
|---|---|---|---|
421 4.7.0 |
Geçici | Geçici oran sınırlaması, daha sonra tekrar deneyin | Gmail, Yahoo |
450 4.1.1 |
Geçici | Posta kutusu geçici olarak kullanılamıyor | Exchange, Postfix |
451 4.7.1 |
Geçici | Spam filtresi geçici reddi (gri listelenme) | SpamAssassin, Barracuda |
452 4.2.2 |
Geçici | Alıcı posta kutusu dolu | Genel |
550 5.1.1 |
Kalıcı | Kullanıcı mevcut değil | Genel |
550 5.7.1 |
Kalıcı | SPF/DKIM/DMARC politikası reddi | Gmail, M365 |
554 5.7.1 |
Kalıcı | İçerik veya IP kara listesi reddi | Genel |
Postfix kullanan sunucularda kuyruk durumunu anlık olarak görmek için mailq veya eşdeğeri postqueue -p komutu kullanılır. Çıktıda her mesajın kuyruk kimliği, boyutu, kuyruğa girme zamanı, gönderici ve alıcı adresi ile son hata mesajı listelenir.
Kuyruktaki tüm mesajları hemen iletmeyi denemek için:
postqueue -f
Belirli bir mesajı kuyruktan silmek için:
postsuper -d <QUEUE_ID>
Tüm aktif kuyruğu temizlemek (dikkatli kullanılmalı):
postsuper -d ALL deferred
Postfix günlükleri /var/log/mail.log veya /var/log/maillog altında tutulur. grep "status=deferred" /var/log/mail.log komutuyla yalnızca ertelenen mesajları filtreleyebilirsiniz.
Exim tabanlı sistemlerde kuyruk listesi için:
exim -bp
Kuyruğu zorla işlemek:
exim -qff
Belirli bir mesajın başlıklarını ve nedenini görmek:
exim -Mvh <MESSAGE_ID>
Exim, /var/log/exim4/mainlog dosyasında her teslimat girişimini ayrıntılı şekilde kaydeder. deferral anahtar sözcüğüyle arama yaparak erteleme nedenlerini hızla tespit edebilirsiniz.
SPF kaydı, alan adınızın e-posta göndermesine izin verilen IP adreslerini tanımlar (RFC 7208). Doğrulama için:
dig TXT example.com +short
DKIM imzasını test etmek için MXToolbox veya mail-tester.com gibi araçlar kullanılabilir. DMARC politikanızı kontrol etmek için:
dig TXT _dmarc.example.com +short
Google Postmaster Tools, alan adı itibarınızı, spam oranınızı ve kimlik doğrulama başarı oranlarınızı gerçek zamanlı olarak görselleştirir. Microsoft SNDS (Smart Network Data Services) ise Microsoft altyapısına gönderilen mesajlara ait IP itibar verisi sunar.
Birçok posta sunucusu, ilk kez bağlanan IP adreslerini geçici olarak 451 koduyla reddeder. Bu, gri listelemedir ve RFC 5321'deki yeniden deneme zorunluluğuna dayanır; spam botlarının büyük çoğunluğu yeniden denemediğinden bu yöntem etkilidir. Ancak meşru gönderici sunucularda ilk teslimat 5–15 dakika gecikebilir. Çözüm, alıcı sunucunun gri listesini yönetmek veya gönderici IP adreslerini beyaz listeye almaktır.
Connect365, kurumsal e-posta gönderimlerinde SMTP kuyruk sorunlarını minimize etmek için tasarlanmış bir altyapı sunar. Otomatik IP rotasyonu, ön tanımlı SPF/DKIM/DMARC yapılandırması ve gerçek zamanlı teslimat izleme paneli sayesinde gecikme kaynaklı iş kayıpları önemli ölçüde azalır. Gönderim hızı, hedef sunucunun kabul kapasitesine göre dinamik olarak ayarlanır; bu sayede 421 ve 451 kodlarının tetiklediği kuyruk birikimi önlenir.
Alıcı sunucu 4xx geçici hata kodu döndürdüğünde RFC 5321'e göre gönderici sunucu mesajı yeniden denemek zorundadır. Yeniden deneme aralıkları üstel olarak büyüdüğünden (örneğin 5 dk, 10 dk, 20 dk, 40 dk...) toplam gecikme saatlere ulaşabilir. Sunucu günlüklerinde status=deferred satırlarını inceleyerek tam hata kodunu öğrenebilirsiniz.
421, alıcı sunucunun bağlantıyı geçici olarak reddettiğini belirtir. "Too many connections", "Service temporarily unavailable" veya "Try again later" gibi açıklamalarla gelir. Gmail bu kodu hız sınırlamasında, Exchange ise bakım dönemlerinde kullanır. Mesaj kuyrukta tutulur ve sonraki deneme aralığında yeniden iletilir.
postqueue -f komutu tüm ertelenen mesajları hemen yeniden denemeye zorlar. Yalnızca belirli bir alıcıya ait mesajları boşaltmak için postqueue -s domain.com komutunu kullanabilirsiniz. Bu işlem önce bir test ortamında yapılmalı, üretim sunucusunda dikkatli uygulanmalıdır.
Evet. SPF kaydı eksik veya hatalı olduğunda alıcı sunucu mesajı geçici olarak reddedebilir ya da spam klasörüne yönlendirebilir. DMARC politikası p=quarantine ise mesaj alıcıya ulaşmakla birlikte gereksiz e-posta klasörüne düşer; p=reject ise mesaj tamamen reddedilir. RFC 7208'e uygun bir SPF kaydı oluşturmak gecikmeleri ve ret oranlarını önemli ölçüde azaltır.
Gri listelemede alıcı sunucu RFC 5321 yeniden deneme mekanizmasını tetikleyerek ilk teslimat girişimini reddeder. Çözüm için: (1) gönderici IP adreslerinizi alıcı sunucunun beyaz listesine ekletin, (2) gönderim altyapınızda sabit ve itibarlı IP adresleri kullanın, (3) DNS ters kaydı (PTR) için ISP'nizle iletişime geçin. Büyük ESP'lerin (Email Service Provider) IP adresleri genellikle önceden beyaz listededir.
Evet. Postfix'te maximal_queue_lifetime parametresi (varsayılan 5 gün) dolduğunda mesaj kuyruktan kaldırılır ve gönderici adresine geri dönüş bildirimi (NDR) gönderilir. Exim'de aynı işlev timeout_frozen_after parametresiyle kontrol edilir. Bu nedenle gecikme süresi 5 günü aşarsa mesajın teslim edilmemiş olabileceğini varsayın.
Yüksek spam şikâyet oranı, kara liste girişleri ve düşük etkileşim oranları IP itibarını olumsuz etkiler. Google Postmaster Tools üzerinden alan adı ve IP itibar puanınızı izleyebilirsiniz. İyileştirme için: listelerinizi düzenli temizleyin, çift onaylı abonelik (double opt-in) kullanın, gönderim hacmini kademeli artırın (IP warming) ve spam şikâyetlerini anında işleyin.
DKIM (RFC 6376), mesajın transit sırasında değiştirilmediğini kanıtlar. İmza geçersizse ve alıcı alan adının DMARC politikası p=reject ise mesaj teslim edilmez; p=quarantine ise spam klasörüne düşer. Yaygın geçersizlik nedenleri arasında anahtar uzunluğunun 1024 bitten kısa olması, mesaj gövdesinde beyaz boşluk değişikliği veya yönlendirme (forward) sırasında içerik değişikliği sayılabilir.
Toplu gönderimlerde SMTP bağlantı havuzu (connection pooling) ve paralel kuyruk işçisi sayısını artırmak performansı yükseltir. Postfix'te default_destination_concurrency_limit ve smtp_destination_concurrency_limit parametreleri bu sayıyı kontrol eder. Connect365 gibi kurumsal ESP'ler, bu parametreleri hedef alan adına göre dinamik olarak ayarlayarak hem hız hem de teslim edilebilirlik optimizasyonunu otomatik sağlar.
Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.
Kurulum + migrasyon ücretsiz. KVKK uyumlu, Türkiye'de barındırma. 7/24 Türkçe destek.
Kampanya 30 Haziran'a kadar geçerlidir.