E-posta gönderme kuyruğunuz dolup taşıyor, log dosyalarında "connection timed out" satırları art arda sıralanıyor ve sisteminiz neden yanıt vermediğini söylemiyor. Bu yazıda söz konusu hatanın gerçek kaynaklarını, hangi katmanda oluştuğunu ve sistematik olarak nasıl çözüleceğini ele alıyoruz.
telnet veya nc ile port erişilebilirliğini test edin, ardından sunucu ve ağ katmanlarını sırayla inceleyin.RFC 5321, SMTP oturumunun her aşaması için yanıt bekleme sürelerini tanımlar. Buna göre bir SMTP istemcisi bağlantı kurma girişiminden itibaren belirli bir süre içinde karşı taraftan TCP SYN-ACK paketi almazsa oturumu sonlandırır ve "connection timed out" hatasını günlüğe yazar. Hata mesajının biçimi gönderen yazılıma göre değişir; Postfix'te connect to mail.example.com[1.2.3.4]:25: Connection timed out, Exim'de SMTP error from remote mail server: connection timeout şeklinde görülür. Her iki durumda da TCP üçlü el sıkışması (three-way handshake) tamamlanamamıştır.
Önemli bir ayrım: SMTP'nin 4xx serisi geçici hatalar, 5xx serisi kalıcı hatalar içindir (RFC 5321, Bölüm 4.2). "Connection timed out" ise bunların hiçbiri değildir; TCP katmanında oturum hiç kurulamamıştır. Bu nedenle pek çok izleme sistemi bu durumu ayrı bir kategori olarak raporlar.
Hatayı doğru yere atfetmek, çözüm süresini önemli ölçüde kısaltır. Aşağıdaki tablo en yaygın nedenleri, hangi katmanda oluştuklarını ve ilk tespit yöntemini özetlemektedir:
| Neden | Katman | Hızlı Tespit |
|---|---|---|
| Güvenlik duvarı 25/587/465 portunu kapatıyor | Ağ | telnet hedef.com 25 zaman aşımına uğruyor |
| ISP/bulut sağlayıcısı port 25'i engelliyor | Ağ (taşıyıcı) | Farklı ağdan aynı test başarılı oluyor |
| Hedef sunucu gönderen IP'yi kara listeye almış | Uygulama | MXToolbox ile IP sorgusu |
| Eksik veya yanlış rDNS (PTR) kaydı | DNS | dig -x GÖNDEREN_IP boş veya uyumsuz dönüyor |
| Yanlış MX kaydı veya MX hedefinin A kaydı yok | DNS | dig MX hedef.com ve dig A mx1.hedef.com |
| SMTP sunucusu çökmüş ya da dinleme yapmıyor | Sunucu | ss -tlnp | grep :25 veya servis durumu |
| TLS/SSL yanlış yapılandırması | Uygulama | openssl s_client -connect hedef.com:587 -starttls smtp |
İlk kontrol noktası port erişilebilirliğidir. Klasik yöntem Telnet'tir:
telnet posta.hedef.com 25
Bağlantı kurulursa 220 posta.hedef.com ESMTP gibi bir karşılama mesajı görürsünüz. Eğer bağlantı birkaç saniye beklemenin ardından "Connection timed out" dönüyorsa paketler ağda ya da güvenlik duvarında düşürülüyor demektir. nc (netcat) ile de aynı testi yapabilirsiniz:
nc -zv -w 10 posta.hedef.com 25
Port 587 (STARTTLS ile gönderim) ve 465 (SMTPS) için testi tekrarlayın. RFC 8314, istemci gönderimleri için 587 ve 465 portlarının kullanımını önerir; modern altyapılarda port 25 yalnızca sunucular arası (MTA-to-MTA) iletişim için ayrılmıştır.
Linux tabanlı sistemlerde iptables veya nftables kurallarını listeleyin:
iptables -L -n -v | grep -E '25|587|465'
Bulut ortamlarında (AWS, Google Cloud, Azure) güvenlik grupları ve ağ erişim kontrol listeleri (NACL) ayrıca kontrol edilmelidir. AWS EC2 örneklerinde varsayılan olarak giden port 25 trafiği kısıtlıdır; AWS, bu kısıtlamayı kaldırmak için destek talebi açılmasını zorunlu kılar. Benzer kısıtlamalar Google Cloud ve Azure'da da mevcuttur.
Bazı ISP'ler ve paylaşımlı barındırma sağlayıcıları spam önlemi gerekçesiyle port 25 çıkış trafiğini toptan kısıtlar. Bu durumu ayırt etmenin en hızlı yolu, testi farklı bir ağdan (örneğin mobil veri bağlantısı üzerinden) tekrarlamaktır. Farklı ağda başarılı oluyorsa sorun taşıyıcı katmanındadır.
Hedef sunucu gönderen IP adresini engellemişse TCP bağlantısı zaman zaman hiç kurulmadan düşürülebilir; bu da "connection timed out" olarak görünür. MXToolbox (mxtoolbox.com/blacklists.aspx), Spamhaus, Barracuda ve SORBS gibi veritabanlarını tarayarak IP itibarınızı doğrulayın. Eğer IP kara listedeyse ilgili sağlayıcıların kaldırma (delist) süreçlerini izleyin. Spamhaus'un SBL, XBL ve PBL listeleri en yaygın referans noktalarıdır.
Gönderen sunucunuzun PTR (ters DNS) kaydı olmalı ve bu kayıt A kaydıyla tutarlı olmalıdır. Google ve Microsoft, PTR kaydı bulunmayan sunuculardan gelen bağlantıları reddedebilir. Microsoft'un posta kabul politikaları bu gereksinimi açıkça belgelemektedir.
dig -x GÖNDEREN_IP_ADRESI +short
Gönderen alan adınızın SPF kaydını RFC 7208'e göre, DKIM imzasını RFC 6376'ya göre ve DMARC politikasını RFC 7489'a göre yapılandırdığınızdan emin olun. Bu kayıtların eksikliği hedef sunucunun bağlantıyı erken sonlandırmasına neden olabilir.
Hata giden değil gelen bağlantılarda yaşanıyorsa kendi SMTP sunucunuzun dinleme yapıp yapmadığını kontrol edin:
ss -tlnp | grep -E ':25|:587|:465'
Postfix için systemctl status postfix, Exim için systemctl status exim4 komutlarıyla servis durumunu doğrulayın. Log dosyaları Postfix'te /var/log/mail.log ya da /var/log/maillog, Exim'de /var/log/exim4/mainlog konumundadır.
Kurumsal ağlarda SMTP trafiği genellikle akıllı aktarıcı (smart host/relay) üzerinden yönlendirilir. Bu yapılarda güvenlik duvarı yalnızca relay sunucusuna izin verip doğrudan MX bağlantılarını engellemiş olabilir. Postfix'te relayhost parametresi, Exchange'de bağlayıcı (connector) yapılandırması bu mimarinin merkezindedir.
TLS zorunluluğu da zaman aşımlarına yol açabilir. Karşı sunucu eski TLS sürümlerini (TLS 1.0, 1.1) artık desteklemiyorsa ve sizin yapılandırmanız yalnızca bu sürümleri kullanıyorsa el sıkışma tamamlanmadan bağlantı düşebilir. OpenSSL ile el sıkışmayı doğrudan test edebilirsiniz:
openssl s_client -connect posta.hedef.com:587 -starttls smtp
Sorunu çözdükten sonra aşağıdaki adımların tamamını doğrulamanız önerilir: Güvenlik duvarında ilgili portların gelen ve giden yönlerde açık olduğunu onaylayın. Gönderen IP için PTR kaydının doğru yapılandırıldığını teyit edin. SPF, DKIM ve DMARC kayıtlarını test araçlarıyla doğrulayın; Google Postmaster Tools bu konuda gerçek zamanlı veriler sunar. IP itibarını düzenli aralıklarla izleyin. SMTP bağlantı denemelerini ve zaman aşımlarını loglayan bir izleme sistemi kurun.
"Connection refused" (bağlantı reddedildi) hedef sunucunun TCP RST paketi göndererek aktif biçimde bağlantıyı reddettiği anlamına gelir; port açık ama servis çalışmıyor ya da erişim kısıtlı olabilir. "Connection timed out" ise hiçbir yanıt alınamaması durumudur; paketler ağ veya güvenlik duvarı katmanında sessizce düşürülüyordur.
RFC 8314 ve modern e-posta altyapısı genel olarak istemci-sunucu (MUA-to-MSA) iletişimi için port 587'yi (STARTTLS) ya da 465'i (SMTPS) önerir. Port 25, sunucular arası (MTA-to-MTA) iletişim için ayrılmıştır ve birçok ISP bu portu son kullanıcı ağlarında engeller.
AWS, Google Cloud ve Azure gibi büyük bulut sağlayıcıları spam önlemi gerekçesiyle giden port 25 trafiğini altyapı düzeyinde kısıtlar. Bu kısıtlama güvenlik grubu kurallarından bağımsızdır ve sağlayıcıya destek talebi açarak kaldırılması gerekir. Port 587 veya 465 üzerinden gönderim bu durumda genellikle sorunsuz çalışır.
Önce kara listeye alınmanın nedenini tespit edin: sunucunuz spam gönderiyor olabilir ya da güvenliği ihlal edilmiş olabilir. Sorunu giderdikten sonra ilgili kara liste sağlayıcısının kaldırma (delist) formunu doldurun. Spamhaus için spamhaus.org/removal, Barracuda için barracudacentral.org/rbl/removal-request adreslerini kullanabilirsiniz. Süreç genellikle 24-72 saat sürer.
Pek çok büyük e-posta sağlayıcısı (Gmail, Outlook, Yahoo) PTR kaydı bulunmayan IP adreslerinden gelen SMTP bağlantılarını reddeder veya ek filtrelemeye tabi tutar. PTR kaydının A kaydıyla birebir eşleşmesi (forward-confirmed reverse DNS / FCrDNS) güvenilirlik açısından kritik öneme sahiptir.
Postfix'te /var/log/mail.log dosyasını grep "connection timed out" ile düzenli olarak tarayabilirsiniz. Daha kapsamlı izleme için Nagios, Zabbix veya Prometheus gibi araçların SMTP denetim eklentilerini kullanabilirsiniz. Bulut tabanlı e-posta altyapılarında Google Postmaster Tools teslim oranı ve IP itibarını gerçek zamanlı raporlar.
Evet. Karşı sunucu yalnızca TLS 1.2 ve üzerini destekliyorsa, sizin sunucunuz eski TLS sürümleri sunduğunda el sıkışma tamamlanamaz ve bağlantı zaman aşımına uğrayabilir. openssl s_client ile TLS el sıkışmasını test edin; Postfix'te smtp_tls_protocols parametresini güncel TLS sürümlerini kapsayacak şekilde ayarlayın.
Teknik olarak evet, ancak bu kayıtlar olmadan gönderdiğiniz e-postalar büyük ihtimalle spam klasörüne düşer ya da reddedilir. RFC 7208 (SPF), RFC 6376 (DKIM) ve RFC 7489 (DMARC) günümüz e-posta ekosisteminin temel güvenlik katmanlarını oluşturur. Google ve Yahoo, 2024 itibarıyla büyük hacimli gönderimler için bu kayıtları zorunlu kılmaktadır.
Paylaşımlı barındırma ortamlarında doğrudan port 25 erişimi genellikle kısıtlıdır. Bu durumda barındırma sağlayıcınızın sunduğu SMTP relay hizmetini, ya da SendGrid, Mailgun, Amazon SES gibi üçüncü taraf işlemsel e-posta servislerini port 587 veya 465 üzerinden kullanmanız önerilir.
Connect365, kendi yönetilen SMTP altyapısı üzerinden e-posta gönderir; bu sayede port engelleri, IP itibar sorunları ve DNS yapılandırması gibi teknik detaylar sizin yerinize yönetilir. IP ısınma (warm-up) süreci, SPF/DKIM/DMARC kurulumu ve teslim oranı izleme platformun standart özellikleri arasındadır.
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.