Czy trzeba skonfigurować serwer pocztowy, aby móc korzystać z mail
polecenia linux ?
Czy trzeba skonfigurować serwer pocztowy, aby móc korzystać z mail
polecenia linux ?
Odpowiedzi:
Nie, nie potrzebujesz serwera pocztowego do wysyłania poczty. Najbardziej znam Sendmail i istnieją 3 klasyfikacje funkcjonalności, które spełniają e-mail jako usługę. MDA (Mail Delivery Agents) to 1, a MTA (Mail Transfer Agents) to 2, a 3 to MUA (Mail User Agents).
Terminologia jest myląca, ale nie wymaga się, aby MTA działała cały czas. MTA będzie wywoływany za każdym razem, gdy MUA ( mail
) chce „wysłać” pocztę.
Po uruchomieniu mail
i podać adres, aby wysłać wiadomość do, sam@example.com
. Klient poczty przywoła MTA ( /usr/bin/sendmail
), która następnie zapyta DNS dla tego hosta / domeny (example.com) i dowie się, jaka wartość jest wyznaczona dla jego rekordu MX. MX oznacza Mail Exchanger.
Możesz użyć dig
polecenia, aby zobaczyć:
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
Tak więc klient spróbuje połączyć się z eggs.gnu.org na porcie 25, aby dostarczyć ten e-mail.
@puk zadał następujące pytanie uzupełniające:
Czy to DNS na moim komputerze lokalnym?
Na co odpowiedziałem:
@puk - może być tak samo jak serwer pocztowy, ale zazwyczaj tak nie jest. Sprawdź swój /etc/resolv.conf
plik, a także po uruchomieniu dig
polecenia zauważysz SERVER: ...
linię na dole. To serwer DNS obsługuje Twoje żądanie.
Mój /etc/resolv.conf
plik zawiera następujące elementy:
nameserver 192.168.1.8
I zapytania takie jak ten, używając dig
:
$ dig gnu.org mx
Wynik w dolnej części:
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
A dla bystrego czytelnika, zapytam, jak to jest skonfigurowane? Odpowiedź to /etc/nsswitch.conf
plik. W szczególności ta linia:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Oznacza to, że najpierw użyj plików ( /etc/hosts
), a następnie mdns4_minimal
. To jest DNS multiemisji. Zasadniczo jest to pamięć podręczna poprzednich wyszukiwań. Wreszcie używa, dns
który jest adresem IP nameserver
wyznaczonego w /etc/resolv.conf
pliku.
To zależy od używanej wersji mail
.
Wszystkie wersje potrzebują MTA, aby faktycznie dostarczyć pocztę, ale niektóre wersje mogą używać SMTP do komunikowania się ze zdalnym MTA („smarthost”, np. Serwer pocztowy twojego usługodawcy internetowego), a niektóre mogą tylko potokować wiadomość, /usr/sbin/sendmail
aby wysłać pocztę za pośrednictwem lokalny MTA.
W tym ostatnim przypadku, lokalny serwer może być w pełni rozwiniętym MTA jak sendmail lub Eximie lub postfix . Albo może to być proste, wyślij tylko MTA jak nullmailer lub ssmtp . Lub nieco bardziej wyrafinowany mini-MTA, taki jak msmtp, który obsługuje również kolejkowanie poczty w celu późniejszego dostarczenia.
W świecie wolnego oprogramowania i otwartego oprogramowania istnieją dwa główne warianty mailx
pakietu (który udostępnia mail
polecenie): bsd-mailx
i heirloom-mailx
.
bsd-mailx nie mówi SMTP i może wysyłać wiadomości tylko poprzez przesyłanie potokowe/usr/sbin/sendmail
hierloom-mailx może rozmawiać SMTP ze smarthostem, a także tradycyjną metodą „potok do wysyłania”.
Tak więc, aby odpowiedzieć na pytanie „Czy potrzebujesz serwera poczty?”. Tak, w pewnym sensie. Potrzebujesz go, ale w zależności od zainstalowanej wersji poczty może nie być konieczne zainstalowanie i skonfigurowanie jej we własnym systemie.
IMO, lepiej jest z minimalnym MTA, msmtp
niż poleganiem wyłącznie na smarthostie, heirloom-mailx
ponieważ nadal musisz ustawiać kolejkę do późniejszego dostarczenia, gdy twoje połączenie internetowe jest niedostępne lub twój smarthost jest nieosiągalny. W lokalnej kolejcemail
a crond
inne programy mogą po prostu wysłać i zapomnieć każdą pocztę. Bez lokalnej kolejki muszą jakoś poradzić sobie z warunkiem błędu, jeśli smarthost jest niedostępny.