Il comando mail richiede un server di posta?


16

È necessario configurare un server di posta prima di poter utilizzare il mailcomando linux ?



@slm non è esattamente lo stesso di quella domanda suggerisce che uno ha bisogno di un server SMTP per eseguire la posta, ma sto chiedendo se è assolutamente necessario
puk

1
Sì, è un possibile duplicato, ti ho risposto b / c che Q lo prende un po 'troppo specifico. Mi sento ancora come un imbecille ma ti ho risposto comunque Cool
slm

Risposte:


14

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 maile 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.

Esempio

Puoi usare il digcomando 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.

Server DNS?

@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.conffile e anche quando esegui il digcomando noterai la SERVER: ...riga in fondo. Questo è il server DNS che serve la tua richiesta.

Esempio

Il mio /etc/resolv.conffile 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.conffile. 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 dnsquale è l'indirizzo IP del nameserverdesignato nel /etc/resolv.conffile.


Questo DNS è sul mio computer locale?
puk

@puk - vedi aggiornamenti.
slm

@puk - Ne ho aggiunti altri ....
slm

7

Dipende davvero da quale versione di mailte 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/sendmailinviare 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 mailxpacchetto (che fornisce il mailcomando): bsd-mailxe 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 msmtpaffidarti esclusivamente a uno smarthost heirloom-mailxperché 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, maile crondaltri 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.