メッセージを動的に生成し、次のコマンドを使用して送信します。
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
シェルスクリプトの「Document here」(メッセージのタイトルと本文を作成)
#!/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