Własny serwer SMTP to pełna kontrola nad dostarczalnością e-maili, reputacją domeny i kosztami wysyłki. Jeśli trafiłeś tu, bo szukasz kompletnego poradnika konfiguracji Postfix na Ubuntu 22.04 — jesteś we właściwym miejscu. Przeprowadzimy Cię przez każdy etap: od instalacji, przez konfigurację TLS i DKIM, aż po ustawienie relay i monitorowanie kolejki.
Dlaczego Postfix, a nie alternatywy?
Postfix to de facto standard wśród MTA (Mail Transfer Agent) w środowiskach Linux. Jest aktywnie rozwijany, dobrze udokumentowany i domyślnie dostępny w repozytoriach Ubuntu. W porównaniu do Exim czy Sendmail oferuje czytelniejszą konfigurację i lepszy model bezpieczeństwa oparty na izolacji procesów.
Na potrzeby tego poradnika zakładamy, że dysponujesz świeżą instancją Ubuntu 22.04 LTS (VPS lub serwer dedykowany) z dostępem root lub sudo, własną domeną i możliwością edycji rekordów DNS.
Wymagania wstępne
- Ubuntu 22.04 LTS (minimalny obraz serwera)
- Statyczny adres IP (rekomendowany — wpływa na reputację nadawcy)
- Dostęp do panelu DNS domeny (np. Cloudflare, nazwa.pl)
- Otwarte porty: 25 (SMTP), 587 (submission), 465 (SMTPS) — sprawdź u dostawcy VPS
- Ważna nazwa hosta (FQDN), np. mail.twojadomena.pl
Wielu dostawców VPS (OVH, Hetzner, DigitalOcean) domyślnie blokuje port 25 dla nowych klientów. Odblokowanie wymaga zgłoszenia przez panel supportu.
Instalacja Postfix na Ubuntu 22.04
Krok 1 — Aktualizacja systemu i instalacja pakietu
Zanim zainstalujemy Postfix, upewnij się, że system jest aktualny. Następnie zainstaluj pakiet wraz z narzędziami pomocniczymi:
sudo apt update && sudo apt upgrade -y
sudo apt install postfix mailutils -y
Podczas instalacji pojawi się interaktywny kreator. Wybierz typ konfiguracji Internet Site i podaj pełną nazwę domeny (FQDN), np. mail.twojadomena.pl. Pozostałe opcje możesz pominąć — skonfigurujemy je ręcznie.
Krok 2 — Ustawienie poprawnego hostname
Postfix korzysta z systemowej nazwy hosta. Ustaw ją trwale:
sudo hostnamectl set-hostname mail.twojadomena.pl
echo "127.0.0.1 mail.twojadomena.pl mail" | sudo tee -a /etc/hosts
Podstawowa konfiguracja Postfix — main.cf
Główny plik konfiguracyjny to /etc/postfix/main.cf. Poniżej omawiamy kluczowe dyrektywy, które musisz ustawić przed uruchomieniem serwera produkcyjnie.
Kluczowe parametry main.cf
| Parametr | Przykładowa wartość | Opis |
|---|---|---|
myhostname |
mail.twojadomena.pl | FQDN serwera pocztowego |
mydomain |
twojadomena.pl | Główna domena |
myorigin |
$mydomain | Domena w nagłówku From: dla lokalnych wiadomości |
inet_interfaces |
all | Nasłuchiwanie na wszystkich interfejsach |
inet_protocols |
ipv4 | Protokół IP (ipv4 / all) |
mydestination |
$myhostname, localhost | Domeny, dla których serwer jest końcowym odbiorcą |
mynetworks |
127.0.0.0/8 [::ffff:127.0.0.0]/104 | Sieci, którym ufamy bez uwierzytelnienia |
smtpd_banner |
$myhostname ESMTP | Baner powitalny (nie ujawniaj wersji!) |
Edytuj plik poleceniem sudo nano /etc/postfix/main.cf i wprowadź powyższe wartości dostosowane do swojej domeny. Po każdej zmianie przeładuj konfigurację: sudo postfix reload.
Konfiguracja TLS w Postfix
Szyfrowanie TLS to dziś absolutne minimum — bez niego wiele serwerów odbiorczych odrzuci Twoje wiadomości lub oznaczy je jako podejrzane. Potrzebujesz certyfikatu SSL dla swojej domeny. Najszybciej uzyskasz go przez Certbot + Let's Encrypt.
Instalacja certyfikatu Let's Encrypt
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.twojadomena.pl
Certbot zapisze certyfikaty w katalogu /etc/letsencrypt/live/mail.twojadomena.pl/. Upewnij się, że Postfix ma do nich dostęp (domyślnie tylko root).
Dyrektywy TLS w main.cf
Dodaj lub zaktualizuj następujące linie w /etc/postfix/main.cf:
# TLS dla połączeń przychodzących (smtpd)
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.twojadomena.pl/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.twojadomena.pl/privkey.pem
smtpd_tls_security_level=may
smtpd_tls_loglevel=1
smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
# TLS dla połączeń wychodzących (smtp)
smtp_tls_security_level=may
smtp_tls_loglevel=1
smtp_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
Wartość may oznacza, że TLS jest preferowane, ale nie wymagane — co zapewnia kompatybilność z serwerami nieobsługującymi szyfrowania. Jeśli wysyłasz wyłącznie do nowoczesnych serwerów, możesz ustawić encrypt.
Włączenie portu 587 (submission) w master.cf
Port 587 to standardowy port do uwierzytelnionego wysyłania poczty przez klientów (np. aplikacje, skrypty). Odkomentuj lub dodaj w /etc/postfix/master.cf:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
Uwaga: powyższy fragment zakłada użycie Dovecot jako mechanizmu SASL. Jeśli nie używasz Dovecot, zastąp smtpd_sasl_type wartością cyrus lub skonfiguruj alternatywny backend.
Konfiguracja DKIM z OpenDKIM
DKIM (DomainKeys Identified Mail) to mechanizm podpisywania wiadomości kryptograficznym kluczem przypisanym do domeny. Bez DKIM Twoje e-maile mają znacznie większe szanse trafić do spamu — szczególnie w Gmailu i Outlooku.
Instalacja i generowanie kluczy
sudo apt install opendkim opendkim-tools -y
sudo mkdir -p /etc/opendkim/keys/twojadomena.pl
sudo opendkim-genkey -b 2048 -d twojadomena.pl -D /etc/opendkim/keys/twojadomena.pl -s mail -v
Polecenie tworzy dwa pliki: mail.private (klucz prywatny) i mail.txt (rekord DNS do opublikowania). Zawartość mail.txt wklej jako rekord TXT w DNS swojej domeny pod nazwą mail._domainkey.twojadomena.pl.
Konfiguracja /etc/opendkim.conf
Domain twojadomena.pl
KeyFile /etc/opendkim/keys/twojadomena.pl/mail.private
Selector mail
Socket local:/run/opendkim/opendkim.sock
UserID opendkim
UMask 007
Syslog yes
LogWhy yes
Canonicalization relaxed/simple
Mode sv
SubDomains no
OversignHeaders From
Integracja OpenDKIM z Postfix
Dodaj do /etc/postfix/main.cf:
milter_protocol = 6
milter_default_action = accept
smtpd_milters = local:/run/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
Uruchom i włącz usługę: sudo systemctl enable --now opendkim, a następnie przeładuj Postfix: sudo postfix reload.
SPF, DMARC i rekordy DNS — obowiązkowe minimum
Sam Postfix to za mało — bez poprawnych rekordów DNS Twoje wiadomości będą odrzucane lub trafiać do spamu. Poniżej trzy rekordy, które musisz opublikować:
Rekord SPF
SPF (Sender Policy Framework) wskazuje, które serwery IP są upoważnione do wysyłania poczty w imieniu Twojej domeny. Dodaj rekord TXT:
twojadomena.pl. IN TXT "v=spf1 ip4:TWÓJ_IP_SERWERA ~all
Zamień TWÓJ_IP_SERWERA na publiczny adres IPv4 Twojego VPS. Flaga ~all (softfail) jest bezpieczniejsza na start niż -all (hardfail).
Rekord DMARC
DMARC łączy SPF i DKIM w jedną politykę i pozwala otrzymywać raporty o nadużyciach. Minimalna konfiguracja:
_dmarc.twojadomena.pl. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@twojadomena.pl"
Zacznij od polityki p=none (tylko monitoring), a po kilku tygodniach analizy raportów przejdź na p=quarantine lub p=reject.
Rekord PTR (rDNS)
Odwrotna strefa DNS (PTR) musi wskazywać z adresu IP serwera na jego FQDN. Ustaw ją w panelu dostawcy VPS — nie w panelu DNS domeny. Brak rekordu PTR to jeden z najczęstszych powodów blokowania przez Gmail i Outlook.
Konfiguracja Postfix relay — wysyłka przez zewnętrzny SMTP
Jeśli Twój VPS ma zablokowany port 25 lub chcesz korzystać z zewnętrznego serwera SMTP jako relay (np. do poprawy dostarczalności), skonfiguruj relayhost w Postfix.
Relay przez uwierzytelniony SMTP
Dodaj do /etc/postfix/main.cf:
relayhost = [smtp.twojrelay.pl]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
Utwórz plik z danymi logowania /etc/postfix/sasl_passwd:
[smtp.twojrelay.pl]:587 login@twojrelay.pl:HASŁO
Zabezpiecz plik i wygeneruj mapę binarną:
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo postfix reload
Narzędzia takie jak MailerPRO pozwalają zarządzać wieloma skrzynkami SMTP z jednego panelu — co jest wygodną alternatywą dla ręcznej konfiguracji relay na każdym serwerze z osobna.
Zabezpieczenia i ograniczenia antyspamowe
Otwarty serwer SMTP (open relay) to prosta droga do znalezienia się na czarnych listach. Poniższe dyrektywy w main.cf ograniczają możliwość nadużyć:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_rbl_client zen.spamhaus.org
smtpd_helo_required = yes
disable_vrfy_command = yes
message_size_limit = 20480000
Dyrektywa reject_rbl_client zen.spamhaus.org odrzuca połączenia z adresów IP znajdujących się na liście Spamhaus ZEN — jednej z najbardziej wiarygodnych list blokujących.
Monitorowanie kolejki i logi Postfix
Podstawowe polecenia diagnostyczne
sudo postqueue -p— wyświetla aktualną kolejkę wiadomościsudo postqueue -f— wymusza ponowne dostarczenie wstrzymanych wiadomościsudo postsuper -d ALL— usuwa wszystkie wiadomości z kolejki (ostrożnie!)sudo tail -f /var/log/mail.log— logi w czasie rzeczywistymsudo postfix check— weryfikacja poprawności konfiguracji
Weryfikacja konfiguracji TLS i DKIM
Po uruchomieniu serwera warto przetestować konfigurację zewnętrznymi narzędziami. Wyślij testową wiadomość na adres check-auth@verifier.port25.com — otrzymasz automatyczną odpowiedź z wynikami testów SPF, DKIM i DMARC. Możesz też skorzystać z serwisu mail-tester.com, który ocenia konfigurację w skali 1–10.
Typowe błędy i jak je naprawić
| Problem | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Wiadomości trafiają do spamu | Brak DKIM, SPF lub PTR | Zweryfikuj rekordy DNS narzędziem MXToolbox |
| Connection refused na port 25 | Port zablokowany przez dostawcę VPS | Zgłoś odblokowanie lub użyj relay |
| Postfix nie startuje po zmianie main.cf | Błąd składni konfiguracji | Uruchom sudo postfix check i sprawdź logi |
| Certbot nie może odnowić certyfikatu | Port 80 zajęty lub zablokowany | Użyj trybu --webroot lub DNS challenge |
| Relay odrzuca połączenie (535) | Błędne dane w sasl_passwd | Sprawdź plik i przebuduj mapę: postmap |
RODO a własny serwer pocztowy
Prowadząc własny serwer SMTP, stajesz się podmiotem przetwarzającym dane osobowe (adresy e-mail odbiorców). Zgodnie z art. 32 RODO jesteś zobowiązany wdrożyć odpowiednie środki techniczne zapewniające bezpieczeństwo przetwarzania — szyfrowanie TLS i regularne aktualizacje systemu to absolutne minimum. Przechowuj logi pocztowe tylko tak długo, jak jest to niezbędne (zasada minimalizacji z art. 5 ust. 1 lit. e RODO), i zadbaj o odpowiednie wpisy w rejestrze czynności przetwarzania.
Konfiguracja Postfix na Ubuntu 22.04 to kilkugodzinna praca, która opłaca się wielokrotnie — masz pełną kontrolę nad wysyłką, reputacją domeny i kosztami. Kluczowe elementy to: poprawna konfiguracja main.cf, certyfikat TLS, podpisywanie DKIM, rekordy SPF/DMARC i właściwe ograniczenia antyspamowe. Jeśli chcesz zarządzać wysyłką z wielu kont SMTP z jednego miejsca — bez konfigurowania każdego serwera z osobna — sprawdź możliwości MailerPRO, który integruje się z dowolnym serwerem Postfix przez standardowy protokół SMTP.
📨 Wypróbuj Mailer PRO
Wysyłaj mailing z własnych skrzynek SMTP — bez prowizji od liczby maili. Zachowujesz pełną kontrolę nad reputacją domeny.
Zobacz cennik Jak to działa


