Tradicionalmente, Unix mail
e derivativos (e muitas outras ferramentas Unix) usam a interface /usr/bin/sendmail
, fornecida por quase todos os agentes de transferência de e-mail (MTAs - postfix, exim, courier e, é claro, sendmail).
Ou seja, o programa mail
não fala nenhum protocolo de rede - ele envia a mensagem para sendmail
via stdin e permite lidar com a entrega real. (Isso remonta aos dias em que alguns e-mails usavam o SMTP, alguns usavam o UUCP, outros usavam o BITNET ...)
Quando uma mensagem é enfileirada em sendmail
, o MTA manipula a transmissão de mensagens real, seja por meio de SMTP ou outra coisa. Dependendo da configuração, ele pode se conectar diretamente ao MTA de destino ou retransmitir mensagens por meio de outro host (também chamado de smarthost).
Conexão direta é mais comum em servidores; a retransmissão via smarthost é mais comum em computadores pessoais em conexões domésticas - retransmitir através de sua conta de e-mail do Gmail ou ISP / trabalho é essencial para evitar os filtros antispam de "IP dinâmico".
(Alguns MTAs como esmtp
ou nullmailer
são criados especificamente para usuários domésticos e sempre usam um relayhost. Eles não suportam recebimento de e-mails e são muito mais leves em recursos.)
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
Outros programas, principalmente os clientes gráficos amigáveis, como Thunderbird ou Outlook, sempre conectam-se diretamente a um servidor SMTP de retransmissão / smarthost (normalmente, Gmail ou ISP / servidor SMTP de trabalho), que transmite a mensagem em seu nome.
O suporte SMTP nativo está presente em heirloom-mailx
, mas não no tradicional bsd-mailx
.
app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
O terceiro método - conectando-se diretamente ao servidor do destinatário - é quase nunca usado, e nenhum MUA o suporta. Em computadores pessoais, usá-lo faria com que sua mensagem fosse rejeitada (muito spam é enviado de endereços IP de usuários domésticos infectados).
app → [SMTP] → recipient MTA → caught by the spam filter