
次のコマンドを使用して、メッセージを即座に作成し、送信します。
echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]
ファイルから情報を送信する場合は、次のようにするようです:
sendmail [email protected] mail.txt
次に、sendmail は各行をヘッダーとして認識し、解析します。ただし、上記の送信方法では、すべてが件名行に含まれます。
ヘッダー付きのメッセージを sendmail にエコーする場合、その形式は何ですか? どのようにすればよいですか?
答え1
ステートメントは、 に続く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"
答え2
シェル スクリプトの「ヒア ドキュメント」(メッセージのヘッダーと本文を作成します)
#!/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