Использование 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 и, похоже, единственный доступный метод
Ответы
Ответ 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: будет удалена перед передачей.