Historicamente, o comando mail
do Unix não usa serviços de rede. Ele apenas executa /usr/sbin/sendmail
com as opções necessárias e canaliza o email de saída para ele. Isso é literalmente de onde sendmail
recebeu seu nome. Para mensagens recebidas, basta ler a caixa de entrada do sistema local do usuário, localizada em /var/mail/<username>
.
Devido a essa convenção, mesmo quando seu sistema operacional unix-like está usando algum outro software de transporte de correio, como o Postfix no caso do macOS, esse software precisa fornecer /usr/sbin/sendmail
binary que compreenda um conjunto bem conhecido de opções com a finalidade de implementar essa interface simples e antiga.
Como resultado, esse método de chamada inicia a parte direita do Postfix para uma transmissão de email única, mesmo se o software Postfix estiver desconfigurado e nos padrões de fábrica: se o destinatário for um usuário local ou o destinatário O servidor pode ser determinado a partir dos registros DNS MX e / ou A e é alcançável, o e-mail será enviado a caminho e o processo /usr/sbin/sendmail
sairá com o código de resultado 0, indicando ao comando mail
que a operação foi bem-sucedida.
Mas se o servidor destinatário não puder ser imediatamente alcançado, todas as apostas serão desativadas: nesse caso, o componente /usr/sbin/sendmail
armazenaria a mensagem na fila de mensagens de saída do sistema local (historicamente /var/spool/mqueue
, com o Postfix provavelmente /var/spool/postfix/deferred
) ... onde ele ficará, esquecido, até o final do tempo, se o restante do software de transferência de e-mail não tiver sido ativado, pois o processo que deve verificar periodicamente a fila de e-mails não será executado.