После установки ssmtp и mailutils запись в файл с помощью 'echo' пытается отправить мне письмо на имя пользователя@hostname. Например:
Отправка почты с помощью mailutils:
echo "Body text here." | mail -s "Subject text here." sendto@email.com
и я использую:
echo "log content" > logfile.txt
для записи содержимого в файл журнала.
Проблема в том, что когда я хочу написать в файл журнала, я получаю письмо от Gmail о том, что имя пользователя@hostname недоступно, что означает, что это мешает работе mailutils.
Это известная проблема с mailutils, которая требует обходного пути или исправления, и как я могу ее решить?
Вы делаете что-то подобное?
echo "log content" > logfile.txt | mail -s "Subject text" sendto@email.com
Если да, то неудивительно, что это не сработает - вы уже перенаправляете echo
выводит его в файл, вы также не можете передать его по конвейеру mail
без использования такой программы, как tee
.
tee
предназначена для (со страницы руководства):
tee - читать со стандартного ввода и записывать в стандартный вывод и файлы
Примечание: если вы хотите добавить к logfile.txt
, а не перезаписывать его полностью, используйте tee -a logfile.txt
. См. тройник
.
Итак, чтобы сохранить в файл журнала И в почту, попробуйте следующее:
echo "log content" | tee logfile.txt | mail -s "Subject text" sendto@email.com
В качестве альтернативы вы можете перенаправить в файл журнала, а затем использовать <
для перенаправления почты
stdin должен быть файлом журнала, например:
echo "log content" > logfile.txt
mail -s "Subject text" sendto@email.com < logfile.txt