Який формат передачі повідомлення в sendmail?


22

Я використовую таку команду, щоб створювати повідомлення на ходу, і надсилати їх:

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

Здається, що коли ви надсилаєте інформацію з файлу, виконайте щось на кшталт:

sendmail email@example.com mail.txt 

Потім sendmail бачить кожен рядок як заголовок і аналізує його. Але так, як я надіслав це вище, все закінчується в рядку теми.

Якщо ви хочете, щоб повідомлення із головними заголовками перейшло у sendmail, то який формат? Як це зробити?

Відповіді:


24

Ваше echoзаява повинна дійсно вихід нова рядок не послідовність \слід n. Ви можете зробити це, надавши -eопцію:

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

Щоб зрозуміти, в чому різниця, подивіться на вихід із наступних двох команд:

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

"Тут документ" у скриптах оболонки (Ви створюєте заголовки та тіло повідомлень)

#!/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

Тіло повідомлення із зовнішнього файлу

#!/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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.