Traditionnellement, Unix mail
et ses dérivés (et de nombreux autres outils Unix) utilisent l'interface /usr/bin/sendmail
, fournie par presque tous les agents de transfert de courrier (MTA - postfix, exim, courier, et bien sûr sendmail).
C'est-à-dire que le programme mail
ne parle aucun protocole de réseau - il transmet le message à sendmail
via stdin, et lui permet de gérer la livraison effective. (Cela remonte à l'époque où certains courriers utilisaient le SMTP, d'autres l'UUCP, d'autres encore le BITNET…)
Une fois qu'un message est mis en file d'attente à sendmail
, le MTA s'occupe de la transmission effective du message, que ce soit par SMTP ou autre chose. Selon la configuration, il peut soit se connecter directement au MTA de destination, soit relayer le courrier via un autre hôte (également appelé smarthost).
La connexion directe est plus courante sur les serveurs ; le relais via un smarthost est plus courant sur les ordinateurs personnels sur les connexions à domicile - le relais via votre compte Gmail ou votre FAI/mail professionnel est essentiel pour éviter les filtres antispam “IP dynamique” généralisés.
(Certains MTA tels que esmtp
ou nullmailer
sont conçus spécifiquement pour les utilisateurs à domicile et utilisent toujours un relais. Ceux-ci ne prennent pas en charge la réception de courrier et sont beaucoup plus légers en termes de ressources).
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
D'autres programmes, principalement les clients graphiques conviviaux tels que Thunderbird ou Outlook, toujours se connectent directement à un serveur SMTP relais/smarthost (là encore, généralement Gmail ou ISP/serveur SMTP de travail), qui transmet le message en votre nom.
Le support SMTP natif est présent dans heirloom-mailx
, mais pas dans le traditionnel bsd-mailx
.
app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
La troisième méthode - se connecter directement au serveur du destinataire - n'est presque jamais utilisée, et aucun MUA ne la prend en charge. Sur les ordinateurs personnels, son utilisation entraînerait le rejet de votre message (beaucoup de spam est envoyé à partir d'adresses IP d'utilisateurs domestiques infectés).
app → [SMTP] → recipient MTA → caught by the spam filter