Tradizionalmente, Unix mail
e derivati (e molti altri strumenti Unix) usano l'interfaccia /usr/bin/sendmail
, fornita da quasi tutti i mail transfer agent (MTA - postfix, exim, courier, e naturalmente sendmail).
Cioè, il programma mail
non parla alcun protocollo di rete - invia il messaggio a sendmail
via stdin, e lascia che sia lui a gestire la consegna effettiva. (Questo risale ai tempi in cui alcune mail usavano SMTP, altre UUCP, altre ancora BITNET…)
Una volta che un messaggio è accodato attraverso sendmail
, l'MTA gestisce l'effettiva trasmissione del messaggio, sia attraverso SMTP o qualcos'altro. A seconda della configurazione, può connettersi direttamente all'MTA di destinazione, o trasmettere la posta attraverso un altro host (chiamato anche smarthost).
La connessione diretta è più comune sui server; il relay via smarthost è più comune sui personal computer su connessioni domestiche - il relay attraverso il tuo account email Gmail o ISP/lavoro è essenziale per evitare i filtri anti-spam “IP dinamico”.
(Alcuni MTA come esmtp
o nullmailer
sono costruiti specificamente per utenti domestici e usano sempre un relayhost. Questi non supportano la ricezione della posta e sono molto più leggeri in termini di risorse).
mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → recipient MTA → recipient inbox
mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
Altri programmi, soprattutto i client grafici user-friendly come Thunderbird o Outlook, si connettono sempre direttamente a un server SMTP relay/smarthost (di nuovo, di solito Gmail o il server SMTP dell'ISP/lavoro), che trasmette il messaggio per tuo conto.
Il supporto SMTP nativo è presente in heirloom-mailx
, ma non nel tradizionale bsd-mailx
.
app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
Il terzo metodo - connettersi direttamente al server del destinatario - non è quasi mai usato, e nessun MUA lo supporta. Sui personal computer, usarlo causerebbe il rifiuto del messaggio (molto spam viene inviato da indirizzi IP di utenti domestici infetti).
app → [SMTP] → recipient MTA → caught by the spam filter