Подтвердить что ты не робот

Использование sendmail из bash script для нескольких получателей

Я запускаю bash script в cron для отправки почты нескольким получателям при выполнении определенного условия.

Я закодировал такие переменные:

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 и, похоже, единственный доступный метод

4b9b3361

Ответ 1

Попробуйте сделать это:

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

И другой подход, используя shell here-doc:

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

Example Message
EOF

Обязательно отделяйте заголовки от тела пустой строкой в ​​соответствии с RFC 822.

Ответ 2

Используйте параметр -t для sendmail.

в вашем случае - echo -e $mail | /usr/sbin/sendmail -t и добавьте список получателей к самому сообщению как To: [email protected] [email protected] сразу после строки From:.....

-t опция означает - Прочитать сообщение для получателей. Для:, Cc: и Bcc: линии будут сканироваться для адресов получателей. Строка Bcc: будет удалена перед передачей.