Ubuntu
: Я пытаюсь отправить электронное письмо с sendmail
, mailx
, или mail
(все, что будет работать). Я пытаюсь отправить содержимое файла журнала в виде сообщения. Журнал находится по адресу /var/log/nginx/error.log
.
Я запускаю cron каждый час, чтобы узнать, изменилось ли что-нибудь в журнале ошибок, и если это так, я пытаюсь отправить журнал ошибок себе по электронной почте. Обычный тест с sendmail, mailx и mail мне подходит.
это работает (но не то, что я хочу):
echo "My test email being sent from sendmail" | /usr/sbin/sendmail email@gmail.com
Я пробовал следующее (у меня ни одно из них не работает):
sendmail email@gmail.com < /var/log/nginx/error.log
,
/var/log/nginx/error.log | /usr/sbin/sendmail email@gmail.com
,
cat /var/log/nginx/error.log | /usr/sbin/sendmail email@gmail.com
,
mailx email@gmail.com < /var/log/nginx/error.log
,
cat /var/log/nginx/error.log | mailx email@gmail.com
Очевидно, здесь новичок.
Sendmail ожидает получить заголовки и текст сообщения электронной почты поверх стандартного ввода.
[заголовки писем + пустая строка + тело письма]
Вашим попыткам не удалось предоставить заголовки.
Попробуйте сценарий ниже:
#!/bin/sh
(
echo subject: /var/log/nginx/error.log
echo
cat /var/log/nginx/error.log
) | sendmail -i email@gmail.com