web-dev-qa-db-ja.com

UNIXスクリプトでメッセージ付きのメールを送信する方法

UNIXの初心者であり、その話とウォークを学びます。私は.kshでスクリプトを作成しており、メッセージ付きのメールを送信する必要があります。現在、スクリプトでこのコマンドを使用しています:

    mailx -s"File not found" [email protected]

このコマンドは、件名と受信者名を確認するのに役立ちます。私の質問は、それと一緒にメッセージをどのように書くことができるかです。スクリプトを実行するたびに一時停止し、メッセージの入力を求めてから実行するので、スクリプトが途中で一時停止しないようにメッセージをあらかじめ含めておきます。

6
Rahul sawant
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]
8
user2839978

コマンドラインまたはスクリプト内でこれを試してください:

echo "This is the message." | mailx -s "Subject" [email protected]

ファイルから事前定義されたメッセージを使用できます。

cat message.txt | mailx -s "Subject" [email protected]
5

Mailxの代わりに(他の回答で説明)、sendmailを使用することもできます。

cat <<EOF | sendmail -t
To: recipients-mailaddress
From: your-mailaddress
Subject: the-subject
mailtext
blabla
.
EOF

おそらく、sendmailがパスに含まれていない場合は、フルパスを追加する必要があります。例えば。/usr/sbin/sendmailまたは/ usr/lib/sendmail。

更新
これも参照 質問

3
pitseeker

mailxは本文をstdinへの入力として受け取るので、本文をパイプで渡すことができます。

echo "Hello World" | mailx -s"File not found" [email protected]

または ここのドキュメント を使用します

mailx -s"File not found" [email protected] << END_TEXT
Hello World 
END_TEXT
2
nos

添付ファイルも送信したい場合は送信します。どうぞ:

echo 'Type Message body' | mailx -s 'Type subject' -a path/filename.txt [email protected]

例:

echo 'PFA report' | mailx -s 'Today's Report' -a `path`/report1306.txt  [email protected]
0
mahi_0707

事前にメールコンテンツを定義し、次のようにします。

mailx -s"File not found" [email protected] < mailcontent
0
Christine T.