sendmailにメッセージを送信する形式は何ですか?

sendmailにメッセージを送信する形式は何ですか?

メッセージを動的に生成し、次のコマンドを使用して送信します。

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

関連情報