Postfix jest popularnym open source Mail Transfer Agent (MTA), który można używać do kierowania i dostarczania wiadomości email w systemie Linux. Około 25% z publicznych serwerów pocztowych w Internecie uruchamiają Postfix.
W tym tutorialu będziemy uczyć jak zainstalować i pracować z Postfix na serwerze Ubuntu 16.04.
Artykuł o Konfiguracji Postfix na Ubuntu 18 🙂
Wymagania
Aby pracować z tym tutorialem trzeba mieć dostęp do użytkownika innego niż root z sudo przywilejami. Możesz przejść na stronę Wstępna konfiguracja serwera z Ubuntu 16.04 do tworzenia niezbędnych użytkowników.
W celu prawidłowego skonfigurowania Postfix, będziesz potrzebował Fully Qualified Domain Name wskazane na Twój serwer Ubuntu 16.04.
Dla celów tego tutorialu, zakładamy że konfigurujesz węzeł, który ma nazwę domeny mail.example.com.
- Krok #1: Instalacja Postfix
- Krok #2: Konfiguracja Postfix
- Krok #3: Mapa adresów email do kont Linux
- Krok #4: Ustawienie zapory
- Krok #5: Konfigurowanie środowiska zgodnie z lokalizacją mailową
- Krok #6: Instalacja i konfiguracja klienta poczty
- Krok #7: Inicjalizacja Maildir i testowanie klienta
- Wniosek
Krok #1: Instalacja Postfix
Postfix jest w domyślnych repozytoriach Ubuntu, więc instalacja jest bardzo prosta.
Aby rozpocząć, należy zaktualizować lokalną apt pamięć podręczną pakietów, a następnie zainstalować oprogramowanie. Przejdziemy w DEBIAN_PRIORITY=low zmiennej środowiskowej do naszego polecenia instalacji w celu odpowiedzi na pewne dodatkowe komunikaty:
sudo apt-get update
sudo DEBIAN_PRIORITY=low apt-get install postfix
Użyj poniższe informacje, aby poprawnie wypełnić wskazówki dla danego środowiska:
- General type of mail configuration?: Będziemy wybierać stronę internetową ponieważ pasuje do naszych potrzeb infrastrukturalnych.
- System mail name: To jest podstawowa domena, stosowana do tworzenia prawidłowego adresu email, gdy podana tylko część adresu. Na przykład, nazwa hosta naszego serwera jest example.com, ale prawdopodobnie chcesz ustawić nazwę poczty systemowej example.com tak, że ze względu na nazwę użytkownika user1, Postfix użyje adresu user1@example.com.
- Root and postmaster mail recipient: Jest to konto Linux, które zostanie wysłane pocztą adresowaną do root@ i postmaster@. Użyj swojego podstawowego konta do tego. W naszym przypadku to sammy.
- Other destinations to accept mail for: To określa adres docelowy, który Postfix będzie akceptować. Jeśli chcesz dodać inne domeny – dodaj je tutaj, w przeciwnym razie, domyślnie powinien działać dobrze.
- Force synchronous updates on mail queue?: Ponieważ, prawdopodobnie używasz system plików z księgowaniem, wybierz tutaj No.
- Local networks: To jest lista sieci gdzie serwer jest skonfigurowany do przekazywania wiadomości. Domyślnie powinien pracować dla większości scenariuszy. Jeśli zdecydujesz się go zmodyfikować, upewnij się że jest bardzo restrykcyjny w stosunku do zasięgu sieci.
- Mailbox size limit: To może być używane do ograniczenia rozmiaru wiadomości. Ustawienie na “0” wyłącza wszelkie ograniczenia rozmiaru.
- Local address extension character: To jest znak, który może być używany do oddzielania części regularnych adresów z rozszerzeniem (używany do tworzenia dynamicznych aliasów).
- Internet protocols to use: Wybierz, czy ograniczyć wersję IP, którą Postfix obsługuje. Wybieramy dla naszych celów “all“.
Następujace ustawienia będziemy używać do tego tutorialu:
- General type of mail configuration?: Internet Site
- System mail name: com (not mail.example.com)
- Root and postmaster mail recipient: sammy
- Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
- Force synchronous updates on mail queue?: No
- Local networks: 0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Mailbox size limit: 0
- Local address extension character: +
- Internet protocols to use: all
Jeśli chcesz kiedykolwiek wrócić do ponownego dostosowania tych ustawień, można to zrobić wpisując:
sudo dpkg-reconfigure postfix
Monity zostaną wstępnie wypełnione poprzednimi odpowiedziami.
Po zakończeniu, możemy zrobić więcej konfiguracji, aby dostosować nasz system jak chcemy.
Krok #2: Konfiguracja Postfix
Dalej możemy dostosować niektóre parametry.
Na początek możemy ustawić skrzynkę pocztową. Użyjemy formatu Maildir, który oddziela wiadomości w osobnych plikach, które następnie są przenoszone między katalogami na podstawie działań użytkownika. Inną opcją jest format mbox (który nie będziemy tu omawiać), który przechowuje wszystkie wiadomości w jednym pliku.
Będziemy instalować zmienną home_mailbox w maildir/, która będzie tworzyć strukturę katalogów pod tą nazwą w katalogu domowym użytkownika. Polecenie postconf
może służyć do uzyskania lub zmiany ustawień konfiguracyjnych. Skonfigurujemy home_mailbox poprzez wpisywanie:
sudo postconf -e 'home_mailbox= Maildir/'
Następnie możemy ustawić lokalizację tabeli virtual_alias_maps. Ta tabela wyświetla dowolne konta email dla systemu kont w systemie Linux. Będziemy tworzyć tę tabelę w pliku /etc/postfix/virtual. Ponownie, możemy użyć polecenia postconf
:
sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Krok #3: Mapa adresów email do kont Linux
Dalej możemy skonfigurować plik wirtualnych map. Otwórz plik w edytorze tekstu:
sudo nano /etc/postfix/virtual
Wirtualna mapa alias tabeli używa bardzo prostego formatu. Po lewej stronie, można wymienić wszystkie adresy, od których chcesz odbierać wiadomości email. Następnie oddzielone spacjami, wprowadź nazwę użytkownika Linux, do którego poczta musi być dostarczona.
Na przykład, jeśli chcesz odbierać wiadomości email na contact@example.com i admin@example.com, i chciałbyś aby te wiadomości email byli dostarczane do użytkownika systemu Linux sammy, można skonfigurować plik tak:
contact@example.com sammy admin@example.com sammy
Po tym, jak dopasujesz wszystkie adresy do odpowiednich kont serwera, zapisz i zamknij plik.
Możemy zastosować mapowanie poprzez wpisywanie:
sudo postmap /etc/postfix/virtual
Musimy ponownie uruchomić Postfix, aby mieć pewność, że wszystkie nasze zmiany zostały zastosowane:
sudo systemctl restart postfix
Krok #4: Ustawienie zapory
Jeśli używasz zapory UFW, zgodnie z ustawieniami w początkowej instrukcji konfiguracji serwera, musimy zrobić wyjątek dla Postfix.
Można zezwolić na połączenie z usługą wpisując:
sudo ufw allow Postfix
Komponent serwera Postfix jest zainstalowany i gotowy. Następnie będziemy konfigurować klienta, który może obsługiwać pocztę, która będzie przetwarzać Postfix.
Krok #5: Konfigurowanie środowiska zgodnie z lokalizacją mailową
Zanim zainstalujemy klienta, należy upewnić się że nasza zmienna środowiskowa MAIL została poprawnie zainstalowana. Klient będzie sprawdzać tą zmienną, aby dowiedzieć się gdzie szukać użytkowników poczty.
Aby zmienna została zainstalowana niezależnie od tego w jaki sposób uzyskasz dostęp do konta (poprzez ssh, su, su –, sudo, itd.), musimy ustawić zmienną w kilku różnych miejscach. Dodamy je do pliku /etc/bash.bashrc i do pliku /etc/profile.d, aby upewnić się, że każdy użytkownik będzie miał to skonfigurowane.
Aby dodać zmienną do tych plików, należy wpisać:
echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Aby odczytać zmienną do bieżącej sesji, można pozyskać plik /etc/profile.d/mail.sh :
source /etc/profile.d/mail.sh
Krok #6: Instalacja i konfiguracja klienta poczty
W celu interakcji z pocztą dostarczaną będziemy instalować pakiet s-nail . Jest to wariant BSD xmail klienta, który jest wielofunkcyjny, może obsługiwać poprawnie format Maildir i w większości jest wstecznie kompatybilny. Wersja GNU mail ma pewne ograniczenia, takich jak odczytanie poczty w formacie mbox, niezależnie od formatu źródłowego.
Aby zainstalować pakiet s-nail, należy wpisać:
sudo apt-get install s-nail
Musimy ustawić kilka parametrów. Otwórz plik /etc/s-nail.rc w edytorze:
sudo nano /etc/s-nail.rc
W dolnej części pliku należy dodać następujące parametry:
. . . set emptystart set folder=Maildir set record=+sent
To pozwoli klientom otwierać nawet pustą skrzynkę pocztową. Również zostanie zainstalowany katalog Maildir wewnętrz zmiennej folder , a następnie wykorzystamy to, aby stworzyć plik sent mbox, do przechowywania wysłanych wiadomości.
Zapisz i zamknij plik po zakończeniu.
Krok #7: Inicjalizacja Maildir i testowanie klienta
Teraz możemy przetestować klienta.
Inicjalizacja struktury katalogów
Najprostszym sposobem, aby utworzyć strukturę Maildir w zasięgu naszego katalogu domowego – wysłać do siebie wiadomość email. Możemy to zrobić za pomocą polecenia mail. Ponieważ plik sent będzie dostępny tylko po utworzeniu Maildir, powinniśmy wyłączyć zapisywanie do naszej pierwotnej poczty elektronicznej. Możemy to zrobić poprzez przekazywanie opcji -Snorecord.
Wyślij wiadomość email poprzez przeniesienie wiersza do polecenia mail
. Skonfiguruj polecenie, aby oznaczyć użytkownika Linux jako odbiorcę:
echo 'init' | mail -s 'init' -Snorecord Sammy
Powinieneś otrzymać następującą odpowiedź:
Can't canonicalize "/home/sammy/Maildir"
Jest to normalne i będzie wyświetlane tylko w tej pierwszej wiadomości. Możemy sprawdzić, aby upewnić się, że katalog został stworzony, wyszukując ~/Maildir:
ls -R ~/Maildir
Powinieneś zobaczyć, że struktura katalogu została utworzona i nowy plik wiadomości znajduje się w katalogu ~/Maildir/new :
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:
Wygląda na to, że nasza wiadomość została dostarczona.
Zarządzanie pocztą z klientem
Użyj klienta, aby sprawdzić pocztę:
mail
Powinieneś zobaczyć swoją nową wiadomość oczekującą:
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init
Po nacisku klawiszy ENTER powinna być wyświetlana wiadomość:
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Wed Dec 31 19:00:00 1969 Date: Fri, 13 May 2016 18:07:49 -0400 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init
Można wrócić do listy wiadomości wpisując h:
h
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init
Ponieważ ta wiadomość nie jest przydatna, możemy ją usunąć za pomocą d :
d
Zakończ, aby wrócić do terminalu wpisując q :
q
Wysyłanie wiadomości z klientem
Można przetestować wysyłanie poczty, wpisując wiadomość w edytorze tekstu:
nano ~/test_message
Wewnątrz wpisz tekst, który chcesz wysłać:
Hello, This is a test. Please confirm receipt!
Za pomocą polecenia cat, możemy wysłać wiadomość na proces mail. To wyśle wiadomość domyślnie jako użytkownik Linux . Można dostosować pole “From” z flagą -r, jeśli chcesz zmienić tą wartość na inną:
cat ~/test_message | mail -s 'Test email subject line' -r from_field_account user@email.com
Powyższe parametry są następujące:
-s
: Wiersz tematu wiadomości email.-r
: Opcjonalna zmiana w wierszu “From:”. Nazwa użytkownika Linux który jest zalogowany, zostanie domyślnie wykorzystana do wypełnienia tego pola. Opcja -r pozwala to zmienić.user@email.com
: Konto na które wysyłamy wiadomość. Zmień to na ważne konto do którego masz dostęp.
Sprawdź listę wysłanych wiadomości w swoim mail kliencie. Uruchom interaktywny klient ponownie wpisując:
mail
Aby wyświetlić listę wysłanych wiadomości wpisz:
file +sent
Możesz zarządzać wysłanymi wiadomościami, korzystając z tych samych poleceń, które używasz dla poczty przychodzącej.
Wniosek
Powinieneś mieć teraz Postfix skonfigurowany na serwerze Ubuntu 16.04. Zarządzanie serwerami pocztowymi może być trudnym zadaniem dla początkujących administratorów, ale z taką konfiguracją, należy mieć podstawową funkcjonalność poczty MTA.
Comments 2 komentarze
Marcin
Wszystko pięknie pokazane.
A jeżeli chciałbym skonfigurować np. klienta Outlook w Windows mając postfix/s-nail na serwerze?
Dyba
Jest szansa na pomoc w ustawieniu bo nie wysyla zadnych email