UNIXの初心者であり、その話とウォークを学びます。私は.kshでスクリプトを作成しており、メッセージ付きのメールを送信する必要があります。現在、スクリプトでこのコマンドを使用しています:
mailx -s"File not found" [email protected]
このコマンドは、件名と受信者名を確認するのに役立ちます。私の質問は、それと一緒にメッセージをどのように書くことができるかです。スクリプトを実行するたびに一時停止し、メッセージの入力を求めてから実行するので、スクリプトが途中で一時停止しないようにメッセージをあらかじめ含めておきます。
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]
コマンドラインまたはスクリプト内でこれを試してください:
echo "This is the message." | mailx -s "Subject" [email protected]
ファイルから事前定義されたメッセージを使用できます。
cat message.txt | mailx -s "Subject" [email protected]
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。
更新:
これも参照 質問
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
添付ファイルも送信したい場合は送信します。どうぞ:
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]
事前にメールコンテンツを定義し、次のようにします。
mailx -s"File not found" [email protected] < mailcontent