Welches Format wird zum Weiterleiten einer Nachricht an Sendmail verwendet?

Welches Format wird zum Weiterleiten einer Nachricht an Sendmail verwendet?

Ich verwende den folgenden Befehl, um Nachrichten im Handumdrehen zu erstellen und zu senden:

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]

Es scheint, dass Sie die Informationen aus einer Datei senden, indem Sie etwa Folgendes tun:

sendmail [email protected] mail.txt 

Dann betrachtet sendmail jede Zeile als Header und analysiert sie. Aber so wie ich es oben gesendet habe, landet alles in der Betreffzeile.

Wenn Sie eine Nachricht mit allen Headern in Sendmail zurücksenden möchten, welches Format muss dafür verwendet werden? Wie geht das?

Antwort1

Ihre echoAnweisung sollte wirklich Zeilenumbrüche ausgeben und nicht die Sequenz, \der ein folgt n. Sie können das erreichen, indem Sie die -eOption angeben:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]

Um den Unterschied zu verstehen, schauen Sie sich die Ausgabe der folgenden beiden Befehle an:

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"

Antwort2

„Hier dokumentieren“ in Shell-Skripten (Sie verfassen Nachrichtenkopfzeilen und -text)

#!/bin/sh
[email protected]
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO

I would like to buy a hamburger
MAIL_END

Nachrichtentext aus externer Datei

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

HEADERS_END

verwandte Informationen