次のコマンドを使用してオンザフライでメッセージを作成し、送信します。
echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
あなたがファイルから情報を送るとき、次のようなことをするようです:
sendmail [email protected] mail.txt
次に、sendmailは各行をヘッダーとして認識し、解析します。しかし、上記で送信した方法では、すべてが件名になってしまいます。
ヘッダーを含むメッセージをsendmailにエコーしたい場合、フォーマットは何ですか?どうやってやるの?
echo
ステートメントは、シーケンスではなく改行を実際に出力する必要があります\
の後にn
が続きます。 -e
オプション:
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
違いを理解するには、次の2つのコマンドの出力を見てください。
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"
シェルスクリプトの「ヒアドキュメント」(メッセージヘッダーと本文を作成します)
#!/bin/sh
[email protected]
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO
I would like to buy a hamburger
MAIL_END
外部ファイルからのメッセージ本文
#!/bin/sh
[email protected]
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO
HEADERS_END