it-swarm.com.de

Sendmail aus dem Bash-Skript für mehrere Empfänger verwenden

Ich verwende ein Bash-Skript in cron, um E-Mails an mehrere Empfänger zu senden, wenn eine bestimmte Bedingung erfüllt ist.

Ich habe die Variablen folgendermaßen codiert: 

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

Und das eigentliche Senden:

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

Das Problem ist, dass nur [email protected] die E-Mail erhält. Wie kann ich dies ändern, damit alle Empfänger die E-Mail erhalten?

HINWEIS: Die Lösung muss mit sendmail sein, ich verwende Jailshell und scheint die einzige verfügbare Methode zu sein

31
lelouch

Versuchen Sie folgendes:

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

Und ein anderer Ansatz mit Shell here-doc:

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

Example Message
EOF

Stellen Sie sicher, dass die Header mit RFC 822 mit einer Leerzeile vom Körper getrennt werden.

65
Gilles Quenot

Verwenden Sie die Option -t für sendmail.

in Ihrem Fall - echo -e $mail | /usr/sbin/sendmail -t und fügen Sie Ihre Nachricht in die Nachricht selbst ein, wie To: [email protected] [email protected] direkt nach der Zeile From:.....

-t Option bedeutet - Nachricht für Empfänger lesen. An :, Cc: und Bcc: Zeilen werden nach Empfängeradressen durchsucht. Die Zeile Bcc: wird vor der Übertragung gelöscht.

6

verwenden Sie sendmail aus dem Shell-Skript

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