44

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

変数を次のようにコーディングしました。

subject="Subject"
from="user@domain.com"
recipients="user1@gmail.com user2@gmail.com"
mail="subject:$subject\nfrom:$from\nExample Message"

そして実際の送信:

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

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

注:解決策はsendmailでなければなりません。私はjailshellを使用していますが、それが唯一の利用可能な方法のようです

4

4 に答える 4

87

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

recipients="user1@gmail.com,user2@gmail.com,user3@gmail.com"

そして、ヒアドキュメントを使用した別のアプローチ-doc :

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

Example Message
EOF

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

于 2012-11-15T02:58:39.597 に答える
9

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

あなたの場合-行の直後のecho -e $mail | /usr/sbin/sendmail -t ように、受信者リストをメッセージ自体に追加しますTo: someone@somewhere.com someother@nowhere.comFrom:.....

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

于 2015-06-15T13:52:27.177 に答える
0

postfix についてsendmailは、スクリプト作成に役立つ 1 行のコマンドを追加しています

RHEL の sendmail コマンド (未公開の受信者) の末尾にあるデフォルトの位置に受信者を追加する際に問題が発生し、echo コマンドをパイプすることで問題は解決しました。

オプションはhttp://www.postfix.org/sendmail.1.html-fから見つかりました

echo の構文は重要であることに注意してください。sendmail を試す前に、ファイルに echo して確認してください。

echo -e "To:receiver1@domain1, receiver2@domain2 \nSubject:Subject of email \n\nBody of email.\n" | /usr/sbin/sendmail -f sender@domain -F sendername -it

于 2021-10-19T13:13:20.980 に答える