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


22

次のコマンドを使用して、メッセージをその場で作成し、送信します。

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

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

sendmail email@example.com mail.txt 

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

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

回答:


24

あなたのechoステートメントは、実際に\続くシーケンスではなく改行を出力するはずnです。これを行うには、-eオプションを提供します:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

違いを理解するには、次の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"

1

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

#!/bin/sh
TO=email@example.com
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO

I would like to buy a hamburger
MAIL_END

外部ファイルからのメッセージ本文

#!/bin/sh
TO=email@example.com
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO

HEADERS_END
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.