Echo to file clashes with mailutils

После установки 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, которая требует обходного пути или исправления, и как я могу ее решить?

0
16.03.2016, 16:03
1 ответ

Вы делаете что-то подобное?

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
0
28.01.2020, 04:51

Теги

Похожие вопросы