メッセージを 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

シェル スクリプトの「ヒア ドキュメント」(メッセージのヘッダーと本文を作成します)

#!/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

関連情報