Traditionell verwenden Unix mail
und Derivate (und viele andere Unix-Tools) die /usr/bin/sendmail
-Schnittstelle, die von fast allen Mail Transfer Agents (MTAs - Postfix, Exim, Courier und natürlich Sendmail) bereitgestellt wird.
Das heißt, das Programm mail
spricht kein Netzwerkprotokoll - es füttert sendmail
über stdin mit der Nachricht und überlässt ihm die eigentliche Zustellung. (Das stammt noch aus der Zeit, als manche Mails SMTP, manche UUCP, manche BITNET benutzten…)
Sobald eine Nachricht durch sendmail
in die Warteschlange gestellt wurde, kümmert sich der MTA um die tatsächliche Übertragung der Nachricht, ob über SMTP oder etwas anderes. Je nach Konfiguration kann er sich entweder direkt mit dem Ziel-MTA verbinden oder Mails über einen anderen Host (auch Smarthost genannt) weiterleiten.
Die direkte Verbindung ist auf Servern üblicher; die Weiterleitung über einen Smarthost ist auf PCs mit Heimanschlüssen üblicher - die Weiterleitung über Ihr Gmail- oder ISP-/Arbeits-E-Mail-Konto ist wichtig, um die pauschalen “dynamischen IP”-Anti-Spam-Filter zu umgehen.
(Einige MTAs wie esmtp
oder nullmailer
sind speziell für Privatanwender gebaut und verwenden immer einen Relayhost. Diese unterstützen den Empfang von Mails nicht und sind wesentlich ressourcenschonender).
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
Andere Programme, vor allem die benutzerfreundlichen grafischen Clients wie Thunderbird oder Outlook, stellen immer eine direkte Verbindung zu einem Relay-/Smarthost-SMTP-Server her (auch hier in der Regel Gmail oder ein SMTP-Server des ISP/Arbeitsplatzes), der die Nachricht in Ihrem Namen überträgt.
Native SMTP-Unterstützung ist in heirloom-mailx
vorhanden, aber nicht im traditionellen bsd-mailx
.
app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
Die dritte Methode - die direkte Verbindung zum Server des Empfängers - wird fast nie verwendet, und kein MUA unterstützt sie. Auf PCs würde die Verwendung dieser Methode dazu führen, dass Ihre Nachricht zurückgewiesen wird (eine Menge Spam wird von infizierten IP-Adressen von Privatanwendern gesendet).
app → [SMTP] → recipient MTA → caught by the spam filter