2012-11-15 9 views
30

特定の条件が満たされたときに複数の受信者にメールを送信するためにbashスクリプトをcronで実行しています。複数の受信者にbashスクリプトからsendmailを使用する

私はこのような変数をコード化されました:

subject="Subject" 
from="[email protected]" 
recipients="[email protected] [email protected]" 
mail="subject:$subject\nfrom:$from\nExample Message" 

そして、送信実際:

echo -e $mail | /usr/sbin/sendmail "$recipients" 

問題が[email protected]が電子メールを受信して​​いることです。これを変更してすべての受信者に電子メールを受信させるにはどうすればよいですか?

注:ソリューションはsendmailのでなければならない、私はjailshellを使用しているとそれだけで利用できるメソッド

答えて

60

のようですこれをやってみてください。

recipients="[email protected],[email protected],[email protected]" 

また別のアプローチは、シェルを使用してここ-docの

/usr/sbin/sendmail "$recipients" <<EOF 
subject:$subject 
from:$from 

Example Message 
EOF 

RFC 822あたりの空白行で体内からヘッダを分離してください。

+1

EOFメソッドをお寄せいただきありがとうございます。 – lelouch

5

オプション-tをsendmailに使用します。あなたのケースで

からecho -e $mail | /usr/sbin/sendmail -tTo: [email protected] [email protected]のようなメッセージ自体にyoutは仮親のリストを追加するには、右の行の後From:.....

-tオプションは意味 - 受信者の 読み取りメッセージを。 To :, Cc :, Bcc:行は受信者アドレスをスキャンします。 Bcc:行は送信前に削除されます。

+0

'-t'オプションを渡すと、' sendmail:-tオプション付きの受信者はサポートされていません 'というメッセージが表示されます。何か案は?ありがとう。 – Vassilis