Envia mensagens em formato html armazenadas na variável usando o comando sendmail

2

Abaixo, o script funciona bem no meu servidor Linux.

(
echo "From: [email protected]";
echo "To: [email protected]";
echo "Subject: Test Subject";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "<html><head><title>HTML E-mail</title></head>
<body><p>Test Body Message</p></body></html>";
) | sendmail -t

Mas depois de modificar o script conforme abaixo, ele mostra o erro como "Nenhum endereço de destinatário encontrado no cabeçalho". É possível exercitar o código abaixo usando variável. Eu não quero usar nenhum arquivo ou qualquer outro comando de email, exceto o sendmail .

var1='(
echo "From: [email protected]";
echo "To: [email protected]";
echo "Subject: Test Subject";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "<html><head><title>HTML E-mail</title></head>
<body><p>Test Body Message</p></body></html>";
)'

echo ${var1} | sendmail -t
    
por Gvtha 27.10.2017 / 16:01

2 respostas

1

substituição de comando substituirá o final da linha pelo espaço.

  • use ;" em vez de ";
  • use tr \; '\n' para renunciar ao fim da linha.
  • use o awk para remover o primeiro caractere como espaço
  • coloque primeiro a linha To:

esse resultado de alguma forma feia

var1=$(
echo "To: [email protected];"
echo "From: [email protected];"
echo "Subject: mail HTML ;"
echo "Content-Type: text/html;"
echo "MIME-Version: 1.0;"
echo ";"
echo "<html><head><title>HTML E-mail</title></head>
body><p>Test Body Message</p></body></html>"
)

## can be one-lined, pipe symbol (|) continue line.
echo ${var1} | tr \; '\n' |
awk 'length == 1 || NR == 1 {print $0} length && NR > 1 { print substr($0,2) }'  |
sendmail -t

isso, no entanto, meu código html (como &aacute; vira para &aacute ), você sabe que o e-mail pode enviar anexos agora mesmo?

man mail
   -A, --attach=FILE
          attach FILE
mail -A <(generate HTML result) [email protected]
    
por 27.10.2017 / 17:02
0

Remova os comandos de eco da definição da variável.

    
por 27.10.2017 / 16:21