web-dev-qa-db-ja.com

メッセージをsendmailにパイプするための形式は何ですか?

次のコマンドを使用してオンザフライでメッセージを作成し、送信します。

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]

あなたがファイルから情報を送るとき、次のようなことをするようです:

sendmail [email protected] mail.txt 

次に、sendmailは各行をヘッダーとして認識し、解析します。しかし、上記で送信した方法では、すべてが件名になってしまいます。

ヘッダーを含むメッセージをsendmailにエコーしたい場合、フォーマットは何ですか?どうやってやるの?

24
Kaizer Sozay

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"
26
Anthon

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

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