ssmtp
é apenas um dos muitos wrappers do Sendmail. Todos eles aceitam uma mensagem na entrada padrão e, opcionalmente, uma lista de endereços como argumentos de linha de comando, e todos oferecem um binário nomeado sendmail
que implementa (pelo menos os recursos básicos) a API de linha de comando tradicional do Sendmail. Mas, falando corretamente, essa mensagem precisa ser uma mensagem RFC822 bem formada. No mínimo, ele deve ter um Subject:
cabeçalho.
ssmtp address@example.com <<<$'Subject: testing 1...2...3'
(With ssmtp
, sendmail
é apenas um link simbólico para ssmtp
. Postfix, Exim, e acredito que todos os outros MTA que Provides: mail-transport-agent
tenham um arranjo semelhante, exceto, é claro, sendmail
onde o sendmail
binário é "a coisa real".)
Mais comumente, você pode reunir uma simples mensagem de email com um documento aqui.
/usr/lib/sendmail -oi -t <<____HERE
Subject: testing
To: recipient@example.net
Here we interpolate the shell variable $result
____HERE
(A -t
opção Sendmail diz para retirar a lista de destinatários dos cabeçalhos da mensagem que você recebe na entrada padrão. O caminho exato para o Sendmail será diferente entre as plataformas.)
Outra variação comum é combinar a saída de alguns comandos. Tome cuidado para ter uma linha vazia (um "pescoço") entre os cabeçalhos e o corpo da mensagem.
( printf "Subject: random number\n\n"
dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -D -An ) |
sendmail elsewhere@example.org
Para qualquer coisa além de mensagens ASCII muito simples, somente texto, você precisa entender como compor uma mensagem MIME adequada; nesse ponto, geralmente faz mais sentido usar uma ferramenta como essa mutt
. Algumas plataformas possuem mail
ou mailx
sabem enviar anexos e texto não ASCII, mas isso não é totalmente portátil.
O desafio aqui não é encontrar um cliente que possa receber uma mensagem de e-mail e tentar enviá-la, é configurá-lo para as especificidades do Gmail, o que exige que o MTA saiba o nome de usuário e a senha a serem usados no servidor remoto para para poder usá-lo como o smarthost de saída.
Nos bastidores, a maioria dos clientes gosta mutt
, mailx
etc. geralmente apenas rodam sendmail
nos bastidores para transmitir a mensagem ao sistema.