Przy konfiguracji SMTP (serwer poczty wychodzącej) w programie pocztowym, WordPressie, aplikacji lub skrypcie — musisz wybrać port. I tu zaczyna się zamieszanie: 25, 465, 587, 2525 — każdy robi „to samo” (wysyła maile), ale inaczej. Źle wybrany port = maile nie wychodzą, timeout, „connection refused”.
W tym poradniku wyjaśniam co robi każdy port SMTP, który wybrać w jakiej sytuacji i jak rozwiązać najczęstsze problemy z połączeniem.
Spis treści
Toggle4 porty SMTP — szybkie porównanie
| Port | Szyfrowanie | Zastosowanie | Status |
|---|---|---|---|
| 25 | Brak (lub STARTTLS) | Komunikacja między serwerami (relay) | Blokowany przez ISP/hosting dla użytkowników |
| 465 | Implicit SSL/TLS | Wysyłka z klienta (submission) — stary standard | Przywrócony w 2018 (RFC 8314) |
| 587 | STARTTLS (upgrade) | Wysyłka z klienta (submission) — obecny standard | ✅ Zalecany domyślnie |
| 2525 | STARTTLS | Alternatywa gdy 587 jest blokowany | Nieoficjalny, ale powszechnie obsługiwany |
Port 25 — komunikacja między serwerami
Port 25 to oryginalny port SMTP od 1982 roku. Był używany do wszystkiego: wysyłki z klienta i relay między serwerami. Problem: w erze spamu boty masowo wysyłały spam przez port 25 bez autentykacji.
Dzisiaj port 25 jest:
- Blokowany przez większość ISP (Orange, UPC, Plus) i hostingów współdzielonych dla użytkowników końcowych — żeby zapobiec wysyłaniu spamu z zainfekowanych komputerów.
- Używany wyłącznie do komunikacji serwer → serwer (MTA relay). Twój serwer pocztowy wysyła maile na port 25 serwera odbiorcy.
- NIE używany do konfiguracji klienta pocztowego (Outlook, Thunderbird, WP Mail SMTP). Jeśli wpiszesz port 25 — prawdopodobnie dostaniesz timeout.
Kiedy widzisz port 25: w konfiguracji Postfix/Exim (serwer pocztowy Linux) — przyjmuje maile od innych serwerów na porcie 25. Ale Twój klient pocztowy NIE powinien wysyłać na port 25.
Port 587 — standard wysyłki (STARTTLS) ✅ Zalecany
Port 587 to obecny standard do wysyłania maili z klienta pocztowego (RFC 6409 — „Message Submission”). Używa STARTTLS — połączenie zaczyna się nieszyfrowane, ale natychmiast „upgrade’uje się” do TLS (szyfrowane).
Cechy:
- Wymaga autentykacji (login + hasło) — nie możesz wysłać maila anonimowo
- STARTTLS — szyfrowanie jest „negocjowane” po połączeniu (klient mówi
STARTTLS, serwer odpowiada „OK, szyfrujemy”) - Nie blokowany przez ISP/hosting — w odróżnieniu od portu 25
- Obsługiwany przez wszystkich — Gmail, Outlook, Yahoo, hostingi, SendGrid, Brevo, Mailgun
Kiedy wybrać port 587: domyślnie, zawsze — chyba że masz konkretny powód, żeby wybrać inny. Jest to standardowy port do konfiguracji SMTP w: Outlooku, Thunderbirdzie, WP Mail SMTP, aplikacjach mobilnych, skryptach PHP/Node.
Port 465 — implicit SSL (przywrócony standard)
Port 465 ma skomplikowaną historię: był oficjalnym portem SMTPS (SMTP over SSL) w latach 90., potem został „wycofany” na rzecz 587 + STARTTLS, a w 2018 został przywrócony przez RFC 8314 jako oficjalny port „Message Submission over TLS”.
Cechy:
- Implicit TLS — połączenie jest szyfrowane od pierwszego bajtu (nie negocjowane jak STARTTLS). Bezpieczniejsze w teorii (brak „downgrade attack”).
- Wymaga autentykacji
- Obsługiwany przez większość dostawców (Gmail: tak, hosting: zwykle tak, SendGrid: tak)
Kiedy wybrać port 465: gdy Twój provider rekomenduje go (np. niektóre hostingi mają 465 jako preferowany) lub gdy chcesz implicit TLS zamiast STARTTLS. W praktyce: 587 i 465 działają równie dobrze — wybierz ten, który Twój provider podaje w dokumentacji.
Port 587 (STARTTLS) vs 465 (Implicit TLS) — różnica techniczna
| Cecha | Port 587 (STARTTLS) | Port 465 (Implicit TLS) |
|---|---|---|
| Połączenie zaczyna się | Nieszyfrowane → upgrade do TLS | Szyfrowane od razu |
| Negocjacja | Klient wysyła STARTTLS → serwer akceptuje | Brak negocjacji (TLS wymagany) |
| Ryzyko downgrade attack | Minimalne (ale teoretycznie możliwe) | Zero (TLS od startu) |
| Kompatybilność | Najszersza (standard od 1998) | Szeroka (przywrócony 2018) |
| Rekomendacja | Domyślny wybór | Alternatywa (gdy 587 nie działa) |
Oba są bezpieczne. Oba szyfrują. Różnica jest techniczna — w momencie, w którym szyfrowanie się rozpoczyna. Dla użytkownika końcowego: brak odczuwalnej różnicy.
Port 2525 — alternatywa (nieoficjalny)
Port 2525 to nieoficjalny port SMTP, używany jako fallback gdy port 587 jest blokowany. Nie jest zdefiniowany w żadnym RFC — ale jest powszechnie obsługiwany przez dostawców email marketingu (SendGrid, Mailgun, Brevo, Postmark).
Kiedy użyć 2525:
- Hosting blokuje port 587 (bardzo rzadkie, ale się zdarza)
- Firewall korporacyjny blokuje 587 i 465
- Dostawca email API (SendGrid, Mailgun) rekomenduje 2525 jako alternatywę
Funkcjonalnie: 2525 działa identycznie jak 587 (STARTTLS, autentykacja). Jedyna różnica: numer portu.
Jak wybrać port — decision tree
Konfigurujesz klienta pocztowego / WordPress / aplikację?
│
├── TAK → Czy hosting/provider podaje konkretny port?
│ ├── TAK → Użyj podanego (zwykle 587 lub 465)
│ └── NIE → Użyj PORT 587 + STARTTLS (domyślny standard)
│
├── Port 587 nie działa (timeout)?
│ ├── Spróbuj PORT 465 + SSL/TLS
│ └── Nadal nie → PORT 2525 + STARTTLS (alternatywa)
│
└── Konfigurujesz serwer pocztowy (Postfix/Exim)?
└── Port 25 (relay incoming) + 587 (submission) + 465 (submission TLS)
Konfiguracja SMTP per dostawca — porty
| Dostawca | Serwer SMTP | Port (TLS) | Port (SSL) |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 (STARTTLS) | 465 (SSL) |
| Outlook/Hotmail | smtp-mail.outlook.com | 587 (STARTTLS) | — |
| Yahoo | smtp.mail.yahoo.com | 587 (STARTTLS) | 465 (SSL) |
| Zoho Mail | smtp.zoho.eu | 587 (STARTTLS) | 465 (SSL) |
| SendGrid | smtp.sendgrid.net | 587 | 465 / 2525 |
| Mailgun | smtp.mailgun.org | 587 | 465 |
| Brevo (Sendinblue) | smtp-relay.brevo.com | 587 | 465 |
| home.pl | smtp.home.pl | 587 (STARTTLS) | 465 (SSL) |
| nazwa.pl | smtp.nazwa.pl | 587 | 465 |
| cyber_Folks | smtp.twojadomena.pl | 587 | 465 |
Najczęstsze problemy z portami SMTP
„Connection timed out” / „Unable to connect”
Przyczyny:
- Port zablokowany przez hosting (port 25 na współdzielonym hostingu) → zmień na 587 lub 465.
- Port zablokowany przez firewall (korporacyjny VPN, router z restrykcjami) → spróbuj 2525.
- Zła nazwa serwera — literówka w smtp host. Sprawdź dokumentację dostawcy.
- Zły typ szyfrowania — port 465 wymaga SSL „od startu”, port 587 wymaga STARTTLS. Jeśli wybierzesz SSL na porcie 587 → timeout (bo serwer czeka na nieszyfrowane EHLO).
„Authentication failed” / „535 Incorrect authentication”
- Złe hasło (kopiuj-wklej, uważaj na spacje)
- Gmail: wymaga App Password (nie zwykłe hasło konta, jeśli masz 2FA włączone)
- Hosting: login to pełny adres email (nie sam login FTP)
„Certificate error” / „SSL handshake failed”
- Serwer ma wygasły certyfikat → zgłoś do hostingu
- Złe ustawienie szyfrowania: SSL zamiast TLS lub odwrotnie → zmień
- Self-signed certyfikat (hosting tani) → w ustawieniach klienta: „Trust all certificates” (nie zalecane na produkcji)
SMTP a bezpieczeństwo — co jest szyfrowane?
- Port 587 + STARTTLS: połączenie jest szyfrowane po negocjacji. Treść maila, login i hasło — szyfrowane. Bezpieczne.
- Port 465 + SSL: połączenie szyfrowane od razu. Wszystko szyfrowane. Bezpieczne.
- Port 25 bez szyfrowania: wszystko leci otwartym tekstem (hasło, treść maila) — niebezpieczne na publicznej sieci. Nie używaj do wysyłki z klienta.
- Port 587 BEZ STARTTLS: jak port 25 — otwartym tekstem. Upewnij się, że Twój klient naprawdę robi STARTTLS (nie tylko łączy się na 587).
Jak sprawdzić czy szyfrowanie działa: w Thunderbirdzie: Ustawienia konta → Serwer wychodzący → „Zabezpieczenie połączenia” musi być „STARTTLS” lub „SSL/TLS”. W WP Mail SMTP: pole „Szyfrowanie” → TLS lub SSL. Nigdy „Brak” (None).
SMTP vs API — co lepsze do wysyłki z aplikacji
| Cecha | SMTP (port 587/465) | API (HTTP REST) |
|---|---|---|
| Protokół | SMTP (stary, lata 80.) | HTTPS (nowoczesny) |
| Łatwość integracji | Prosta (każdy język ma bibliotekę SMTP) | Prostsza (HTTP POST z JSON) |
| Szybkość wysyłki | Wolniejsza (handshake per email) | Szybsza (batch, async) |
| Problemy z firewallem | Tak (porty 25/465/587 blokowane) | Nie (port 443 = HTTPS, nigdy nie blokowany) |
| Dostawcy | Każdy (Gmail, hosting, SendGrid) | SendGrid, Mailgun, Brevo, Postmark, SES |
| Kiedy używać | Klient pocztowy, WordPress, proste skrypty | Aplikacje z dużą wysyłką, SaaS, e-commerce |
Dla WordPress SMTP: port 587 jest standardem. Dla własnej aplikacji wysyłającej 1000+ maili dziennie: API (SendGrid/Mailgun) jest lepsze — omija problemy z portami i jest szybsze.
Najczęściej zadawane pytania
Który port jest „najbezpieczniejszy”?
Port 465 (Implicit TLS) jest technicznie najbezpieczniejszy — szyfrowanie od pierwszego bajtu, brak możliwości downgrade. Port 587 + STARTTLS jest w praktyce równie bezpieczny (nowoczesne klienty wymuszają TLS i nie akceptują downgrade). Oba są bezpieczne — niebezpieczny jest tylko port 25 bez szyfrowania.
Dlaczego port 25 jest blokowany?
Bo spam. W przeszłości: zainfekowane komputery masowo wysyłały spam przez port 25 (bez autentykacji). ISP zaczęli blokować port 25 dla użytkowników końcowych, wymuszając używanie 587 (z autentykacją) — co eliminuje anonimowy spam. Port 25 nadal działa między serwerami (serwer A wysyła maila na port 25 serwera B).
Port 587 „Connection refused” — co robić?
(1) Sprawdź nazwę serwera SMTP (literówka?). (2) Sprawdź czy hosting/ISP nie blokuje portu 587 (rzadkie, ale spytaj support). (3) Spróbuj port 465 z SSL. (4) Spróbuj port 2525. (5) Sprawdź firewall lokalny (Windows Defender, iptables).
Jaki port dla IMAP/POP3 (poczta przychodząca)?
To osobne porty (nie SMTP): IMAP = port 993 (SSL) lub 143 (STARTTLS). POP3 = port 995 (SSL) lub 110 (STARTTLS). SMTP = tylko poczta wychodząca.
Podsumowanie
Wybór portu SMTP: 587 + STARTTLS = domyślny standard, działa wszędzie. 465 + SSL = alternatywa z implicit TLS. 2525 = fallback gdy 587 blokowany. 25 = NIE UŻYWAJ do klienta (tylko serwer-to-serwer). Przy konfiguracji: użyj danych z dokumentacji dostawcy (Gmail: smtp.gmail.com:587, hosting: smtp.twojadomena.pl:587/465). Jeśli timeout: zmień port (587 → 465 → 2525). Jeśli auth error: sprawdź hasło i czy Gmail nie wymaga App Password. I zawsze: szyfrowanie ON (TLS lub SSL) — nigdy „Brak”.

