特定の条件が満たされたときに複数の受信者にメールを送信するために、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を使用しており、利用可能な唯一の方法であるようです
これを試してみてください:
recipients="[email protected],[email protected],[email protected]"
そして、シェルを使用する別のアプローチhere-doc:
/usr/sbin/sendmail "$recipients" <<EOF
subject:$subject
from:$from
Example Message
EOF
RFC 822 に従って、ヘッダーを本文から空白行で区切ってください。
Sendmailにはオプション-tを使用します。
あなたの場合-echo -e $mail | /usr/sbin/sendmail -t
およびTo: [email protected] [email protected]
の直後のFrom:.....
のようなメッセージ自体にyout受信者リストを追加します
-t
オプションは、受信者のメッセージを読み取ります。 To:、Cc :、およびBcc:行の受信者アドレスがスキャンされます。 Bcc:行は送信前に削除されます。
シェルスクリプトから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}"