Отправка e-mail через консоль в ubuntu (команда mail)

| 21.02.2013

Иногда бывает важно принимать отчеты от выполнения программ или скриптов на e-mail, для этого можно настроить скрипты на получение почты прямо из консоли. Итак, нам понадобится набор программ mailutils, давайте установим их:

sudo apt-get install mailutils

Разумеется у Вас уже должен быть установлен какой-нибудь почтовый сервер, позволяющий отправлять сообщения. Я предпочитаю использовать postfix, если установить его и настроить, также начинает работать функция mail() в php и другие подобные функции в других языках, что не удивительно, ведь для отправки и используется набор серверных программ.

Чтобы установить postfix пропишем:

sudo apt-get install postfix

Чтобы его настроить, выполним:

sudo dpkg-reconfigure postfix

Для этого надо ответить на вопросы, предложенные программой настройки. Там легко и Вы разберетесь. Если вопросы будут ,пишите в комментарии.

Теперь можно использовать команду mail для отправки сообщений или почтовые функции для выполнения в серверных языках программирования. Но речь шла именно об отправки сообщений из консоли, расскажу как это можно сделать, синтаксис таков:

mail -s "тема письма" adress@mail.lol < log.txt

Что тут происходит: на почту adress@mail.lol придет содержимое файла (об этом нам говорит символ перенаправления потока "<" ) log.txt, Флаг -s означает, что письмо необходимо отправить, указав нужну нам тему письма. Этой темой будет надпись, указанная в кавычках после флага -s, в нашем случае это "тема письма".

Как можно использовать? Ежедневно в 5 утра весь сервер проверяется антивирусом, результаты его работы пишутся в файл, а файл отправляется мне по почте. Планировщику задач cron, я задал консольную команду для этих дел, используя как раз таки утилиту mail.