E-posta pazarlama kampanyanızı gönderdiniz, ancak geri dönüş raporlarında "gelen posta sunucusuna bağlanılamadı" hataları görüyorsunuz. Ya da toplu e-posta gönderiminden sonra kendi alan adınıza gelen test mesajları hiç gelmiyor. Bu tür bağlantı hataları, yalnızca rahatsız edici bir teknik aksaklık değil; teslim edilebilirlik oranınızı doğrudan etkileyen, kampanya performansınızı baltalayan kritik bir sorun olabilir. Bu yazıda gelen posta sunucusu bağlantı hatalarının nedenlerini, tanı adımlarını ve kalıcı çözüm yollarını teknik detaylarıyla ele alıyoruz.
Gelen posta sunucusu, IMAP (Internet Message Access Protocol) veya POP3 (Post Office Protocol 3) protokollerinden birini kullanarak e-posta mesajlarını istemcilere sunan altyapı bileşenidir. IMAP, RFC 3501 ile tanımlanmış olup mesajları sunucuda tutar ve birden fazla cihazdan erişime olanak tanır. POP3 ise RFC 1939 kapsamında mesajları cihaza indirip sunucudan siler.
Bağlantı hatası, istemci yazılımının (Outlook, Thunderbird, mobil posta uygulaması veya özel yazılım) sunucuya TCP bağlantısı kuramaması ya da kimlik doğrulama aşamasını tamamlayamaması durumunda üretilir. Hata mesajları genellikle şu biçimlerde görülür:
Connection refused — Hedef port kapalı veya sunucu dinlemiyor.Connection timed out — Güvenlik duvarı paketi düşürüyor ya da sunucu yanıt vermiyor.SSL/TLS handshake failed — Sertifika geçersiz, süresi dolmuş veya şifreleme uyumsuz.Authentication failed — Kullanıcı adı/parola hatalı veya OAuth token süresi dolmuş.IMAP capability mismatch — İstemci ile sunucu desteklenen komutlar konusunda anlaşamıyor.Bağlantı sorununu tanımlamada zaman kaybetmemek için nedenleri olasılık sırasına göre ele almak gerekir. Aşağıdaki tablo, en sık karşılaşılan nedenleri, tetikleyici durumları ve ilk kontrol noktalarını özetlemektedir:
| Neden | Tipik Belirti | İlk Kontrol | Çözüm Yönü |
|---|---|---|---|
| Yanlış port numarası | Connection refused |
telnet mail.ornek.com 993 |
IMAP→993 (SSL) / 143 (STARTTLS), POP3→995 (SSL) / 110 |
| Güvenlik duvarı / ağ kısıtlaması | Connection timed out |
telnet veya nc ile dış ağdan test |
Firewall kuralı açma; ISP kısıtlaması varsa VPN veya HTTPS proxy |
| SSL/TLS sertifika sorunu | Handshake hatası, sertifika uyarısı | openssl s_client -connect mail.ornek.com:993 |
Sertifikayı yenile; Let's Encrypt veya güvenilir CA kullan |
| Hatalı kimlik bilgisi | Authentication failed |
Web mail paneli üzerinden giriş dene | Parolayı sıfırla; OAuth2 kullanıyorsa token'ı yenile |
| Sunucu kaynak sınırı | Aralıklı zaman aşımı | Sunucu logları: /var/log/mail.log |
MaxClients / worker sayısını artır; bağlantı havuzu kullan |
| IP kara listesi / oran sınırı | Belirli IP'den bağlantı ret | Sunucu fail2ban / iptables kurallarını kontrol et | Fail2ban ban listesinden IP'yi çıkar; meşru bağlantılara izin ver |
Sistematik bir yaklaşım, sorunun kaynağını hızla daraltır. Aşağıdaki adımları sırayla uygulayın; her adım bir öncekinin sonucuna göre ilerler.
İlk adım, TCP bağlantısının kurulup kurulamadığını anlamaktır. Bunun için telnet veya nc (netcat) kullanılır:
# IMAP SSL portu için
telnet mail.sirketiniz.com 993
# Alternatif (nc)
nc -zv mail.sirketiniz.com 993
# POP3 SSL
nc -zv mail.sirketiniz.com 995
Bağlantı kurulursa sunucu bir banner (örneğin * OK Dovecot ready.) döner. Connection refused alırsanız port kapalıdır; timed out alırsanız güvenlik duvarı devrededir.
Ağ bağlantısı başarılıysa, TLS katmanını doğrulayın:
openssl s_client -connect mail.sirketiniz.com:993 -servername mail.sirketiniz.com
Çıktıda Verify return code: 0 (ok) görmelisiniz. Farklı bir kod alırsanız sertifika zincirinde sorun var demektir. Sertifika son kullanma tarihini kontrol etmek için:
echo | openssl s_client -connect mail.sirketiniz.com:993 2>/dev/null \
| openssl x509 -noout -dates
TLS tüneli açıksa IMAP komutlarını elle test edebilirsiniz:
openssl s_client -connect mail.sirketiniz.com:993 -quiet
# Bağlandıktan sonra:
a LOGIN kullanici@sirketiniz.com "ParolaNiz"
a LIST "" "*"
a LOGOUT
a OK LOGIN completed cevabı alırsanız kimlik doğrulama çalışıyor demektir. a NO [AUTHENTICATIONFAILED] alırsanız kimlik bilgilerini gözden geçirin.
İstemci tarafındaki testler yetersiz kalırsa sunucu tarafındaki günlükler kesin bilgi verir. Dovecot kullanan sistemlerde:
# Son 50 IMAP hatasını listele
grep "imap" /var/log/mail.log | grep -i "error\|failed\|disconnect" | tail -50
Postfix/Dovecot bileşiminde /var/log/dovecot.log veya journalctl -u dovecot komutları da kullanılabilir.
Let's Encrypt sertifikaları 90 günde bir yenilenmesi gereken kısa ömürlü sertifikalardır. Otomatik yenileme (certbot renew) yapılandırılmamışsa sertifika süresi dolar ve istemciler bağlantıyı reddeder. Çözüm:
sudo certbot renew --force-renewal
sudo systemctl reload dovecot
Sertifika yenileme işleminin her gün otomatik çalışması için bir cron görevi eklenmelidir:
0 3 * * * /usr/bin/certbot renew --quiet && systemctl reload dovecot postfix
Çok sayıda başarısız giriş denemesinden sonra fail2ban sunucu güvenlik aracı kaynak IP'yi otomatik olarak engeller. Bu durum özellikle parola değiştirildikten sonra eski parolayla bağlanmaya devam eden istemcilerde sıkça görülür. Yasağı kaldırmak için:
# Yasaklı IP'leri listele
sudo fail2ban-client status dovecot
# Belirli IP'nin yasağını kaldır
sudo fail2ban-client set dovecot unbanip 203.0.113.45
Dovecot'ta varsayılan kullanıcı başına eş zamanlı IMAP bağlantı sınırı 10'dur (mail_max_userip_connections parametresi). Çok sayıda cihazdan bağlanan kullanıcılar veya uygulamalar bu sınırı aşarak maximum number of connections exceeded hatası alabilir. /etc/dovecot/conf.d/20-imap.conf dosyasında bu değeri artırabilirsiniz; ancak sunucu kaynaklarına göre makul bir limit belirlenmesi önerilir.
Microsoft 365 ve Google Workspace gibi hizmetler, temel (Basic) kimlik doğrulamayı kaldırarak OAuth2 zorunlu hale getirmiştir. Eski istemciler veya otomasyon betikleri hâlâ kullanıcı adı/parola kombinasyonuyla bağlanmaya çalışırsa kimlik doğrulama hatası alır. Bu durumda uygulamaya özgü parola (App Password) oluşturulması veya OAuth2 akışının entegre edilmesi gerekir.
Gelen posta sunucusu altyapısını yönetirken yalnızca teknik değil, yasal yükümlülükleri de göz önünde bulundurmak gerekir. 6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) kapsamında e-posta içeriklerindeki kişisel veriler için uygun teknik güvenlik önlemleri alınması zorunludur. Öte yandan 6563 sayılı Elektronik Ticaret Kanunu ve ilgili BTK yönetmelikleri, ticari elektronik ileti altyapısının kayıt ve denetim yükümlülüklerini düzenlemektedir. Bu çerçevede:
Bağlantı hatalarını reaktif değil, proaktif biçimde yönetmek için şu uygulamalar önerilir:
IMAP (RFC 3501), mesajları sunucuda tutar ve birden fazla cihazdan erişime olanak tanır; klasörler sunucu tarafında senkronize edilir. POP3 (RFC 1939) ise mesajları cihaza indirir ve varsayılan davranışta sunucudan siler; birden fazla cihaz aynı anda kullanılırken tutarlı bir görünüm sağlamaz. Modern kullanımda IMAP tercih edilmektedir.
IMAP için 993 numaralı port SSL/TLS ile doğrudan bağlantı sağlar; 143 numaralı port ise bağlantı kurulduktan sonra STARTTLS komutuyla şifrelemeyi başlatır. POP3 için 995 (SSL/TLS) ve 110 (STARTTLS) aynı mantıkla çalışır. Şifrelenmemiş bağlantılar (143 ve 110, STARTTLS olmadan) üretim ortamlarında kullanılmamalıdır.
Bu hata genellikle ağ katmanında bir engelin varlığına işaret eder: güvenlik duvarı kuralı, ISP port kısıtlaması veya sunucu tarafında IP yasağı bunların başında gelir. Önce nc -zv sunucu.com 993 komutuyla bağlantıyı test edin. Bağlantı kurulmuyorsa sunucu güvenlik duvarı ayarlarını ve istemci ağındaki kısıtlamaları kontrol edin.
Sertifika geçerli olsa da istemci ile sunucu arasındaki TLS sürümleri veya şifre paketleri (cipher suite) uyuşmayabilir. Eski istemciler TLS 1.0/1.1 kullanmaya çalışabilir; ancak güncel sunucular bu sürümleri devre dışı bırakmış olabilir. openssl s_client çıktısındaki Protocol ve Cipher satırlarını inceleyerek uyumsuzluğu doğrulayabilirsiniz.
Birkaç olası neden vardır: çift faktörlü kimlik doğrulama (2FA) açıksa ve istemci bunu desteklemiyorsa, uygulamaya özgü parola (App Password) oluşturmanız gerekir. Gmail ve Microsoft 365 gibi sağlayıcılar temel kimlik doğrulamayı kaldırmış olabilir; bu durumda OAuth2 kullanılması zorunludur. Ayrıca hesap kilitlenmiş veya geçici olarak askıya alınmış olabilir; web posta üzerinden giriş deneyerek bunu doğrulayın.
Dovecot yapılandırma dosyaları genellikle /etc/dovecot/dovecot.conf ana dosyasında ve /etc/dovecot/conf.d/ dizinindeki bölümlenmiş dosyalarda bulunur. SSL ayarları 10-ssl.conf, kimlik doğrulama ayarları 10-auth.conf, IMAP ayarları ise 20-imap.conf dosyasındadır. Değişiklik sonrasında doveadm reload komutuyla yapılandırma yeniden yüklenir.
Bu hata çoğunlukla istemcinin yanıt zaman aşımını (timeout) aşmasından kaynaklanır. Yavaş DNS çözümlemesi, gecikmeli TLS el sıkışması veya sunucunun yük altında olması bu duruma yol açabilir. İstemci zaman aşımı değerini artırın ve sunucu kaynak kullanımını (top, htop veya sunucu paneli) kontrol edin.
Anlık çözüm için fail2ban-client set dovecot unbanip <IP> komutunu kullanın. Kalıcı çözüm için yasağa yol açan başarısız giriş denemelerinin kaynağını (hatalı yapılandırılmış istemci, otomatik bağlanan uygulama, eski parola) belirleyin ve gideren. Güvenilen IP adreslerini fail2ban'ın ignoreip listesine ekleyebilirsiniz; ancak bu beyaz listeye yalnızca gerçekten güvenilen adresler dahil edilmelidir.
Aralıklı bağlantı sorunları ağ katmanı kararsızlığına, sunucu kaynak tükenmesine veya çok sayıda eş zamanlı bağlantıya işaret edebilir. Sunucuda ss -tnp | grep :993 komutuyla anlık bağlantı sayısını kontrol edin. Dovecot log dosyasında disconnected mesajlarının zamansal dağılımını inceleyin; yüklerin yoğun olduğu saatlerle örtüşüyorsa kaynak sınırı artırımı gerekebilir.
Microsoft 365 veya Google Workspace gibi kurumsal bulut e-posta hizmetleri kendi altyapı güvenilirliğini büyük ölçüde yönetir; ancak siz yine de istemci yapılandırma, OAuth2 entegrasyonu ve ağ güvenliği konularıyla ilgilenmeniz gerekir. Hibrit veya kendi barındırılan (self-hosted) çözümlerde ise bu yazıda ele alınan sorunların tamamı geçerliliğini korur.
Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.