Poradniki > Jak skonfigurować serwer pocztowy SMTP z Postfix na Ubuntu 18.04

Jak skonfigurować serwer pocztowy SMTP z Postfix na Ubuntu 18.04

Opublikowany: 16 stycznia 2020

Mail Server Ubuntu

Postfix to aplikacja serwerowa, która pozwala między innymi zaimplementować protokół SMTP do zarządzania wysyłaniem poczty. Jest to jedno z najszybszych rozwiązań na rynku, bardzo cenione za łatwość konfiguracji i bezpieczeństwo.

W tym poradniku wyjaśniono, jak zainstalować i skonfigurować Postfix na Ubuntu 18.04.

Najpierw połącz się z serwerem za pośrednictwem SSH. Jeśli jeszcze tego nie zrobiłeś, zalecamy skorzystanie z naszej instrukcji, aby nawiązać bezpieczne połączenie przez SSH. W przypadku lokalnego serwera przejdź do następnego punktu i otwórz terminal swojego serwera.

Tylko i wyłącznie na potrzeby tego poradnika korzystamy z użytkownika systemowego root.

W przypadku gdy będziesz korzystać do nauki z innego użytkownika może nastąpić konieczność nadania praw dostępowych do katalogu.

Wszędzie gdzie podajemy moja_domena.pl należy wprowadzić swoją nazwę domeny, którą wcześniej trzeba przekierować na serwer.

Instalacja Postfix

Po połączeniu się z serwerem poprzez SSH, rozpocznij instalację Postfix poprzez wprowadzenie następującej komendy:

$ sudo apt install postfix

Jeśli wystąpią problemy z instalacją wykonaj polecenie:

$ sudo apt update

Bądź w razie konieczności:

$ sudo apt upgrade

Następnie ponów próbę instalacji Postfix’a wpisując pierwszą komendę.

Podczas instalacji zostaniemy poproszeni o wybór właściwej opcji konfiguracji Postfix:

postfix_1-(1).png

Z listy wybierz instalację „Internet Site”.

Po zatwierdzeniu opcji zostaniesz poproszony o wprowadzenie "System mail name".

W tym polu możesz podać nazwę systemu mailowego, bądź co jest lepszym rozwiązaniem nazwę domeny wskazującej na serwer.

postfix_2-(1).png

Po zatwierdzeniu, Postfix powinien być prawidłowo zainstalowany w systemie.

Wszystkie pliki konfiguracyjne Postfix znajdują się w folderze etc/postfix/. Najważniejsze pliki to main.cf oraz master.cf. Kolejnym krokiem jest edycja pliku main.cf.

Przed rozpoczęciem edycji pliku konfiguracyjnego, możesz wykonać kopię zapasową obecnej wersji:

$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.backup

Następnie przy pomocy edytora tekstu otwórz plik który chcesz zmienić:

$ sudo vim /etc/postfix/main.cf

Wszystkie wiersze konfiguracji nie muszą zaczynać się od spacji lub znaków tabulacji. Wszelkie komentarze muszą zaczynać się od znaku #. Niektóre podstawowe parametry, które należy zmodyfikować, wymieniono poniżej:

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

myhostname = moja_domena.pl

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

mydestination = $myhostname, moja_domena.pl, localhost.moja_domena.pl, localhost

relayhost = 

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

inet_protocols = all

home_mailbox = Maildir/

W powyższych parametrach konfiguracji jako przykład użyto domeny „moja_domena.pl”; zastąp ją nazwą posiadanej domeny. Zmień w razie konieczności mydestination według wzoru:

mydestination = $myhostname, moja_domena.pl, localhost.moja_domena.pl, localhost

Po zapisaniu pliku wpisz następującą komendę, konfigurując tym samym home_mailbox, a następnie zrestartuj Postfix’a:

$ sudo postconf -e 'home_mailbox= Maildir/'

$ sudo systemctl restart postfix

Pamiętaj, że każda kolejna modyfikacja plików konfiguracyjnych pociąga za sobą konieczność ponownego załadowania usługi:

$ sudo systemctl reload postfix

W przypadku wystąpienia problemów, parametry i status Postfix’a można sprawdzić w logach wykonując poniższe polecenie:

$ sudo tail /var/log/mail.log

Konfiguracja Firewalla

W przypadku firewalla w systemie skonfiguruj go, aby umożliwić ruch poczty.

Podczas korzystania z zapory UFW dostarczane są wstępnie zainstalowane profile Postfix. Sprawdźmy, jak je włączyć.

Aby sprawdzić dostępne profile zainstalowane w firewalla UFW, uruchom to polecenie:

$ sudo ufw app list

Lista podobna do poniższej zostanie wyświetlona na ekranie:

Available applications:

 Postfix

By zezwolić na połączenie z usługą wpisz:

$ sudo ufw allow Postfix

Konfiguracja środowiska

By zainstalować klienta musisz w pierwszej kolejności zweryfikować czy zmienna środowiskowa MAIL została zainstalowana poprawnie. Klient będzie weryfikował tą zmienną aby dowiedzieć się gdzie szukać użytkownika poczty.

By dodać zmienną do plików wpisz:

$ echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Następnie wpisz poniższą komendę by odczytać zmienną do bieżącej sesji:

$ source /etc/profile.d/mail.sh

Instalacja oraz konfiguracja klienta poczty

W celu weryfikacji poprawnej konfiguracji postfix’a zainstaluj klienta pocztowego s-nail. Wpisz poniższą komendę:

$ sudo apt install s-nail

Następnie edytuj plik s-nail.rc, aby móc wejść nawet do pustej skrzynki oraz by utworzyć plik do przechowywania wysyłanych wiadomości. W tym celu wpisz:

$ sudo nano /etc/s-nail.rc

Na końcu edytowanego pliku dodaj następujące pozycje:

set emptystart
set folder=Maildir
set record=+sent

Test klienta

W celu utworzenia właściwej struktury katalogów najprościej będzie wysłać mail do siebie samego.

$ echo 'init' | s-nail -s 'init' -Snorecord root

Możesz otrzymać następujący komunikat:

Can't canonicalize..

Nie jest to błąd i może być wyświetlany w pierwszej wiadomości. By to zweryfikować wpisz:

$ ls -R ~/Maildir

Powinieneś otrzymać następujący komunikat:

/root/Maildir:
cur new tmp
/root/Maildir/cur:

/root/Maildir/new:
1588677820.Vfd00I283d7M154349.test

root/Maildir/tmp:

Test wysłania wiadomości

Utwórz wiadomość testową, która zostanie wysłana wpisując:

$ nano ~/test_message

Następnie wyślij ją wpisując komendę:

$ cat ~/test_message | s-nail -s 'Tytul wiadomosci' –r root@moja_domena.pl docelowy_adres_e-mail

Jeśli wszystko zostało poprawnie skonfigurowane na adres docelowy powinien dojść e-mail.

Wysłane i odebrane wiadomości możesz sprawdzić wpisując:

$ s-nail

Polecenie h wyświetli maile, d pozwoli wykasować mail, natomiast q wychodzi do wiersza poleceń.