Я использовал следующую почтовую команду в своем crontab, которая работала безупречно, пока мы не переустановили наш почтовый сервер в прошлую пятницу:
echo "Testing 123" | mail -s "ECS PostDate Processed" "layton.everson@gmail.com chrish@mycreditcompany.com" -- -r "noreply@mycreditcompany.com" -F "ServerCronJobs"
ранее "-" перенаправлял параметры командной строки в sendmail для отправки от имени и добавлял адрес для ответа. Теперь кажется, что - игнорируется, и все дополнительные параметры обрабатываются как адреса электронной почты. так что электронное письмо будет:
from root <root@mycompany.com>
to me, chrish, -r, noreply, -F, ServerCronJobs
Чего сейчас не хватает?
Вероятно, вы получили другую версию команды «mail» с обновлением ОС, и у нее нет тех же параметров.
Почему бы просто не использовать sendmail напрямую? Это стандартизованная команда, которую всегда эмулируют MTA Unix, и она хорошо разработана для использования в сценариях:
(
echo "Subject: ECS PostDate Processed"
echo "To: example.1@gmail.com, example2@mycreditcompany.com"
echo "Reply-To: noreply@example.com"
echo "From: ServerCronJobs <root@mycompany.com>"
echo
echo "Testing 123"
) | /usr/sbin/sendmail -oi -t
Это можно сделать ( echo ; echo ; echo ) | sendmail
стиль вместо того, чтобы поместиться на одной линии.
Или, если это все просто echo
вместо команды где-нибудь в этом канале замените "здесь документом":
/usr/sbin/sendmail -oi -t <<EOT
Subject: ECS PostDate Processed
To: example.1@gmail.com, example2@mycreditcompany.com
Reply-To: noreply@example.com
From: ServerCronJobs <root@mycompany.com>
Testing 123
EOT