web-dev-qa-db-ja.com

複数の受信者に対してbashスクリプトからsendmailを使用する

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

このような変数をコーディングしました:

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

そして実際の送信:

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

問題は、user2 @ gmail.comだけがメールを受信して​​いることです。すべての受信者が電子メールを受信するようにこれを変更するにはどうすればよいですか?

注:解決策はsendmailを使用する必要があります。私はjailshellを使用しており、利用可能な唯一の方法であるようです

32
lelouch

これを試してみてください:

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

そして、シェルを使用する別のアプローチhere-doc

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

Example Message
EOF

RFC 822 に従って、ヘッダーを本文から空白行で区切ってください。

70
Gilles Quenot

Sendmailにはオプション-tを使用します。

あなたの場合-echo -e $mail | /usr/sbin/sendmail -tおよびTo: [email protected] [email protected]の直後のFrom:.....のようなメッセージ自体にyout受信者リストを追加します

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

6

シェルスクリプトからsendmailを使用するには

subject="mail subject"
body="Hello World"
from="[email protected]"
to="[email protected],[email protected]"
echo -e "Subject:${subject}\n${body}" | sendmail -f "${from}" -t "${to}"
0
Denish Thummar