Email Gönderilmiyor: Sunucuda Port 25 Kontrol Rehberi
Email gönderimi başarısızsa port 25 engeli çoğu zaman sebep olur. Bu rehberde test, firewall ve servis kontrollerini adım adım yapın.
Email gönderilmiyor şikâyetlerinde en sık karşılaşılan kök nedenlerden biri 25 numaralı port (SMTP) trafiğinin sunucuda engellenmiş olmasıdır. Bu sorun, bazen barındırma sağlayıcısının kota/politika ayarlarından, bazen firewall kurallarından, bazen de SMTP servisin (Postfix/Exim vb.) hiç dinlemediği (listen etmediği) durumundan kaynaklanır. Bu rehberde, sunucunuzdan dış dünyaya giden SMTP akışını doğru sırayla test edecek; port 25 açık mı, servis çalışıyor mu, firewall ne durumda gibi somut kontrolleri öğreneceksiniz.
Not: Aşağıdaki adımlar “giden e-mail” (outgoing mail) sorunlarına odaklanır. Gelen posta (incoming) ve DKIM/SPF/DMARC doğrulaması ayrı konulardır.
1) Port 25 sorunu nasıl anlaşılır? (Hata mesajı üzerinden netleştirme)
Önce e-posta gönderimi denemesinden aldığınız hatayı sınıflandırın. Hata metni, hangi katmanda problem olduğunu hızlı gösterir.
Sık görülen hata desenleri
Connection timed outveyaNetwork is unreachable: Genellikle yol/port engeli (firewall, sağlayıcı kısıtı, routing) işareti.Connection refused: Sunucu IP’si hedefleniyor ama servis 25 portunda dinlemiyor (SMTP servisi çalışmıyor ya da yanlış IP/portta).550 5.7.1 ... Relay access denied: Port erişimi var; fakat relay izni veya doğrulama yanlış (bu rehber port 25 odağı olsa da bununla karışabilir).- Gönderim başarıyor ama teslim olmuyor (bounce/delivery failure): Daha çok DNS (SPF/DKIM/DMARC) ve reputasyon etkendir.
Bu yüzden ilk adım, gönderim denemesinde SMTP’ye bağlanma anındaki hata türünü görmek olmalıdır.
2) Port 25 gerçekten açık mı? Sunucudan ve dışarıdan test
Port 25 kontrolünde amaç: 1) Sunucunuz yerelde 25 portunu dinliyor mu, 2) Sunucunuzun dışarıya bakan (public) IP’sine gidildiğinde bağlantı kuruluyor mu.
2.1 Sunucuda SMTP servisi dinliyor mu? (listen kontrolü)
Önce SMTP servisinin 25 portunda “LISTEN” durumda olup olmadığını kontrol edin.
Linux (genel)
ss -lntp | grep -E ':25\b'- Alternatif:
netstat -lntp | grep -E ':25\b'
Çıktıda 25 portu için bir süreç görünmüyorsa iki tip problem vardır: - SMTP servisi (Postfix/Exim vb.) çalışmıyor. - Servis 25 yerine başka portta (örn: 587 submission) dinliyor.
Beklenen senaryolar
- Postfix kullanıyorsanız genelde
master/postfixile 25 LISTEN görürsünüz. - Exim kullanıyorsanız exim süreçleri ile 25 LISTEN görmeniz gerekir.
2.2 Sunucu dışarıdan görüldüğü gibi 25’e yanıt veriyor mu? (public erişim kontrolü)
Burada kritik nokta: Bazı ortamlarda sunucu yerelde 25’i dinler ama dışarıdan erişim firewall/policy ile engellenir.
Dış erişim testi için sağlayıcının kullandığı IP, NAT (Network Address Translation) veya farklı “public interface” var mı kontrol edilmelidir.
Hızlı yöntem: Telnet/Netcat tarzı test
nc -vz <sunucu-public-ip> 25- Alternatif:
telnet <sunucu-public-ip> 25
Beklenen sonuçlar:
- succeeded / open: Port erişimi var.
- timed out: Engelleme var (firewall, upstream policy, routing).
- refused: IP doğru ama servis/dinleme yok.
2.3 Sağlayıcı bazlı kısıt var mı? (Outbound SMTP politikası)
Özellikle VDS/VPS başlangıçlarında bazı sağlayıcılar spam riskini azaltmak için outbound SMTP (port 25) trafiğini kısıtlar. Bu kısıtlar bazen “yalnızca 587/465 açık” şeklinde olur.
Bunu şu şekilde ayırt edin:
- Sunucu üzerinde yerelde 25 LISTEN görünüyor.
- Ancak dışarıdan nc -vz <public-ip> 25 zaman aşımına düşüyor.
Bu kombinasyon, çoğu zaman firewall değil sağlayıcı policy kaynaklıdır.
3) Firewall/NSG kuralları: Port 25’i hangi katman engelliyor?
Port 25 testinde dışarıdan bağlantı kurulamadıysa, engel şu katmanlardan biri olabilir: - Sunucu üzerindeki firewall (ufw/iptables/nftables) - Bulut katmanı Security Group / NSG (özellikle VPS/VDS paneli olan ortamlarda) - Sağlayıcı ağında egress kuralı
3.1 Sunucu firewall (ufw/nftables/iptables)
Örnek kontrol yaklaşımı: - Mevcut kuralları listeleyin. - 25/tcp için inbound/outbound kuralını netleştirin.
Çoğu senaryoda “outgoing mail” için ihtiyaç, sunucunun kendi çıkışında 25/tcp hedeflere gidebilmesidir (egress). Bu, bazı firewall kurallarında inbound gibi düşünülse de pratikte egress tarafı daha kritik hale gelir.
Somut kontrol için şu mantığı uygulayın: - Sunucunuz çıkışta 25/tcp’ye izin veriyor mu? - Örneğin default deny (yasak) varsa 25/tcp çıkışına allow yoksa bağlantı kurulmaz.
3.2 Bulut güvenlik grupları (Security Group/NSG)
VDS/VPS’iniz bulut üzerinde çalışıyorsa, kontrol panelinde “inbound/outbound rules” bölümü olur. - Outbound: 25/tcp’ye izin var mı? - Inbound: 25/tcp gerekmez (outgoing mail için genellikle inbound şart değildir) ama bazı yanlış kurulumlarda karışır.
Burada hedef, “mailer daemon”ın dış SMTP sunucularına 25/tcp üzerinden bağlanabilmesidir.
3.3 Fail2ban vs benzeri servisler (nadir ama mümkün)
Fail2ban genelde brute force ve authentication hatalarını hedefler; port 25 engellemesi tipik değildir. Yine de 25’e gelen/ giden trafiği yanlış bantlamış bir filtre olabilir.
Hızlı kontrol listesi
- Sunucu firewall: 25/tcp egress allow
- Bulut NSG/Security Group: outbound 25/tcp allow
- Sağlayıcı policy: outbound 25 kapalı değil
4) SMTP servisi doğru mu çalışıyor? (Postfix/Exim dinleme ve relay ayarları)
Port 25 erişimi var ama gönderim yine başarısız oluyorsa problem servis konfigürasyonunda olabilir.
4.1 Servis çalışıyor mu ve loglar ne diyor?
- Servisin durumunu kontrol edin.
- Gönderim denemesi sırasında loglara bakın.
Linux’ta loglar genelde şu başlıklarda çıkar:
- Postfix: /var/log/maillog veya systemd journal
- Exim: /var/log/exim/mainlog
Somut arama örneği (servise göre uyarlayın): - “connect to”, “status=bounced”, “queue”, “relay” gibi ifadeler.
4.2 “25 dinliyor ama yanlış arayüzde” problemi
Bazı kurulumlarda servis sadece localhost (127.0.0.1) üzerinde dinler. Bu durumda sunucu dışarıdan 25’i açmış gibi görünmez.
4.3 Relay (göndermeye yetki) ayarı
Gönderim için en kritik konulardan biri “relay” davranışıdır. - Kimlerin SMTP relay yapmasına izin verdiği - Doğrulama (AUTH) gerekip gerekmediği - Dış hedefe çıkarken hangi “smtpd” ayarlarının devrede olduğu
Eğer hata Relay access denied ise, bu rehberin port 25 testinden sonra ikinci katmanıdır: servisiniz “dışarı mail göndermeye” yetkili değil.
5) Sağlayıcı 25’i kısıtladıysa: 587/465 ile aynı hedefe nasıl gidilir?
Eğer dışarıdan port 25 kapalıysa, gönderim için alternatif SMTP portları kullanılır: - 587 (submission): TLS ile genellikle kullanıcı doğrulaması beklenir. - 465 (smtps): SSL ile çalışan SMTP varyantı.
Burada net yaklaşım şudur: - Sağlayıcı 25’i kapattıysa, uygulamanızın/kurulumunuzun 587/465’e göre yapılandırılması gerekir.
5.1 Hangi portu kullanacağınızı nasıl kesinleştirirsiniz?
Aşağıdaki testleri aynı mantıkla deneyin:
- nc -vz <public-ip> 587
- nc -vz <public-ip> 465
Eğer 587/465 açık ama 25 kapalıysa, sağlayıcının politikası büyük ihtimalle egress/SMTP throttling’dır.
5.2 Sadece port değiştirmek her şeyi çözer mi?
Çözülür; çünkü asıl engel port erişimidir. Ancak şu iki noktayı da kontrol edin: - TLS (STARTTLS/SSL) doğru yapılandırılmış mı? - Kimlik doğrulama (AUTH) ayarları doğru mu?
6) Net karar matrisi: Ne yapacağınızı 3 testle belirleyin
Port 25 sorunlarını çözmek için en hızlı yol “test-sonuç eşleştirmesi”dir.
6.1 Duruma göre net aksiyon tablosu
| Gözlem (test sonucu) | Olası sebep | Yapılacak aksiyon |
|---|---|---|
ss -lntp içinde 25 LISTEN yok |
SMTP servisi çalışmıyor ya da yanlış portta | SMTP servisini başlat/yeniden yapılandır, servis 25’i dinliyor mu doğrula |
25 LISTEN var ama nc <public-ip> 25 timed out |
Firewall veya sağlayıcı policy engeli | Sunucu firewall + NSG outbound 25 allow kontrol et; gerekirse sağlayıcıya 25 egress sor |
25 LISTEN var ama nc ... 25 refused |
Yanlış IP, servis sadece localhost, routing sorunu | Servis hangi interface’te dinliyor; public IP doğru mu doğrula |
| Bağlantı kuruluyor ama gönderim bounce oluyor | Relay/kimlik doğrulama veya DNS (SPF/DKIM/DMARC) | Servis loglarında relay/DNS hatasını oku; doğru SPF/DKIM/DMARC kur |
6.2 Minimum zaman planı (15-30 dakikalık net süreç)
1) ss -lntp | grep ':25' ile dinleme var mı bak.
2) nc -vz <public-ip> 25 ile dış erişim var mı bak.
3) Dış erişim yoksa: sunucu firewall + NSG outbound kuralına bak.
4) Hâlâ yoksa sağlayıcıdan “outbound 25 durumu” bilgisini net sor.
Sonuç: Port 25’i sırayla kanıtlayın, çözümü hızlı seçin
Email gönderilmiyor sorununda port 25 kontrolü, “tahmin” yerine “kanıt” üzerinden ilerlemeyi sağlar. Önce sunucunun 25’te dinlediğini, sonra dışarıdan 25’e bağlantı kurulup kurulmadığını test edin. Dışarıdan erişim yoksa çözüm; sunucu firewall/NSG ayarı ya da sağlayıcı outbound policy’dir; ikisi de net kontrol adımlarıyla belirlenir. Bu rehberdeki 3 testi (dinleme, dış erişim, kural kontrolü) tamamladıktan sonra sonucu karar matrisiyle eşleştirip, ya servis yapılandırmasını düzeltin ya da 587/465 alternatifiyle ilerleyin.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Site Yavaşladı: Hosting Değiştirmeden Önce 7 Kontrol
Site yavaşladı diye hemen hosting değiştirmeyin. DNS, cache, eklenti, kaynak kullanım, bant genişliği ve loglarla 7 kritik kontrol yapın.
VDS Satın Alırken Kontrol Etmeniz Gereken 10 Kritik Madde
VDS satın almadan önce 10 kritik kontrol: CPU/RAM/IOPS, depolama tipi, ağ performansı, garanti, lokasyon, erişim, yedekleme, SLA ve destek.
Dedicated Sunucu Kiralarken Dikkat Edilecek 12 Kritik Nokta
Dedicated sunucu kiralarken donanım, erişim, ağ, yedekleme, işletim sistemi, SLA ve güvenlik konularında net kontrol listesi: 12 kritik nokta.
Site Yavaşladı: Hosting Değiştirmeden Önce 7 Net Kontrol
Site yavaşladı ama hosting değiştirmeden önce net 7 kontrol: loglar, cache, DB, DNS/CDN, TLS, kaynak yükü ve hata izlemeyle kök nedeni bul.
