
Estou usando o seguinte comando para criar mensagens dinamicamente e enviá-las:
echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
Parece que quando você envia as informações de um arquivo, fazendo algo como:
sendmail [email protected] mail.txt
Então o sendmail vê cada linha como um cabeçalho e a analisa. Mas do jeito que enviei acima, tudo acaba no assunto.
Se alguém quiser ecoar uma mensagem completa com cabeçalhos no sendmail, qual é o formato? Como fazer isso ?
Responder1
Sua echo
instrução deve realmente gerar novas linhas e não a sequência \
seguida por n
. Você pode fazer isso fornecendo a -e
opção:
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
Para entender qual é a diferença, dê uma olhada na saída dos dois comandos a seguir:
echo "Subject:Hello \n\n I would like to buy a hamburger\n"
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n"
Responder2
"Aqui documento" em scripts de shell (você redige os cabeçalhos e o corpo da mensagem)
#!/bin/sh
[email protected]
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO
I would like to buy a hamburger
MAIL_END
Corpo da mensagem do arquivo externo
#!/bin/sh
[email protected]
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO
HEADERS_END