¿Cuál es el formato para canalizar un mensaje en sendmail?


22

Estoy usando el siguiente comando para crear mensajes sobre la marcha y enviarlos:

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

Parece que cuando envía la información desde un archivo, haciendo algo como:

sendmail email@example.com mail.txt 

Luego sendmail ve cada línea como un encabezado y la analiza. Pero la forma en que lo envié arriba, todo termina en la línea de asunto.

Si uno quiere hacer eco de un mensaje completo con encabezados, en sendmail, ¿cuál es el formato? ¿Cómo se hace?

Respuestas:


24

Su echodeclaración realmente debería generar nuevas líneas, no la secuencia \seguida por n. Puede hacerlo proporcionando la -eopción:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

Para comprender cuál es la diferencia, eche un vistazo a la salida de los siguientes dos comandos:

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"

1

"Aquí documento" en scripts de shell (compones encabezados y cuerpo del mensaje)

#!/bin/sh
TO=email@example.com
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO

I would like to buy a hamburger
MAIL_END

Cuerpo del mensaje del archivo externo

#!/bin/sh
TO=email@example.com
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO

HEADERS_END
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.