È necessario configurare un server di posta prima di poter utilizzare il mail
comando linux ?
È necessario configurare un server di posta prima di poter utilizzare il mail
comando linux ?
Risposte:
No, non è necessario un server di posta per inviare la posta. Conosco meglio Sendmail e ci sono 3 classificazioni di funzionalità che soddisfano la posta elettronica come servizio. MDA (agenti di consegna della posta) è 1 e MTA (agenti di trasferimento della posta) è 2 e 3 è MUA (agenti dell'utente di posta).
La terminologia diventa confusa ma non è necessario che un MTA sia sempre in esecuzione. L'MTA verrà chiamato ogni volta che MUA ( mail
) vuole "inviare" posta.
Quando si esegue mail
e si specifica un indirizzo per inviare una mail a, sam@example.com
. Il client di posta chiamerà l'MTA ( /usr/bin/sendmail
) che quindi interrogherà il DNS per quell'host / dominio (esempio.com) e scoprirà quale valore è designato per il suo record MX. MX è l'acronimo di Mail Exchanger.
Puoi usare il dig
comando per vedere questo:
$ 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
Quindi il client tenterà di connettersi a eggs.gnu.org sulla porta 25 per consegnare questa e-mail.
@puk ha posto la seguente domanda di follow-up:
Questo DNS è sul mio computer locale?
A cui ho risposto:
@puk - può essere allo stesso modo del server di posta, ma in genere non lo è. Cerca nel tuo /etc/resolv.conf
file e anche quando esegui il dig
comando noterai la SERVER: ...
riga in fondo. Questo è il server DNS che serve la tua richiesta.
Il mio /etc/resolv.conf
file contiene quanto segue:
nameserver 192.168.1.8
E query come questa, usando dig
:
$ dig gnu.org mx
Risultato in questo in fondo:
;; 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
E per il lettore astuto, una mia domanda, come è configurato? La risposta è il /etc/nsswitch.conf
file. Nello specifico questa linea:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Detto questo, usa prima i file ( /etc/hosts
), seguito da mdns4_minimal
. Questo è un DNS multicast. È fondamentalmente una cache di ricerche precedenti. Infine utilizza dns
quale è l'indirizzo IP del nameserver
designato nel /etc/resolv.conf
file.
Dipende davvero da quale versione di mail
te stai usando.
Tutte le versioni necessitano di un MTA per consegnare effettivamente la posta, ma alcune versioni sono in grado di utilizzare SMTP per parlare con un MTA remoto (lo "smarthost", ad esempio il server di posta del tuo ISP) e alcune possono solo /usr/sbin/sendmail
inviare il messaggio per inviare la posta via un MTA locale.
In quest'ultimo caso, l'MTA locale potrebbe essere un MTA completo come sendmail o exim o postfix . Oppure potrebbe essere un semplice MTA di solo invio come nullmailer o ssmtp . O un mini-MTA leggermente più sofisticato come msmtp che supporta anche l'accodamento della posta per la consegna successiva.
Nel mondo del software libero e dell'open source, ci sono due varianti principali del mailx
pacchetto (che fornisce il mail
comando): bsd-mailx
e heirloom-mailx
.
bsd-mailx non parla SMTP e può solo inviare posta eseguendo il piping a/usr/sbin/sendmail
hierloom-mailx può parlare SMTP a uno smarthost e il tradizionale metodo "pipe-to-sendmail".
Quindi, per rispondere alla tua domanda "Hai bisogno di un server di posta?". Sì, una specie di. Ne hai bisogno ma, a seconda della versione di posta installata, potrebbe non essere necessario installarlo e configurarlo sul tuo sistema.
IMO, stai meglio con un MTA minimo come msmtp
affidarti esclusivamente a uno smarthost heirloom-mailx
perché devi ancora mettere in coda la posta per la consegna successiva quando la connessione a Internet è inattiva o lo smarthost non è raggiungibile. Con una coda locale, mail
e crond
altri programmi possono semplicemente inviare e dimenticare qualsiasi posta. Senza una coda locale, devono gestire in qualche modo la condizione di errore se lo smarthost non è disponibile.