Qual é o formato para enviar uma mensagem ao sendmail?

16

Estou usando o seguinte comando para criar mensagens rapidamente 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 

Em seguida, o sendmail vê cada linha como um cabeçalho e a analisa. Mas do jeito que eu enviei acima, tudo acaba na linha de assunto.

Se alguém quiser ecoar uma mensagem completa com cabeçalhos, no sendmail, então qual é o formato? Como se faz isso?

    
por Kaizer Sozay 16.11.2014 / 07:42

2 respostas

18

Sua declaração echo deve realmente gerar novas linhas, não a sequência \ seguida por n . Você pode fazer isso fornecendo a opção -e :

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"
    
por 16.11.2014 / 07:51
1

"Aqui documento" em scripts de shell (você compõe cabeçalhos de mensagens e corpo)

#!/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
    
por 16.11.2014 / 10:31