Как отправить почту из терминала Linux (mailutils)?
Иногда возникает необходимость отправить уведомление или отчёт прямо из терминала — например, по завершении скрипта резервного копирования или при сбое задачи cron. Для этого можно использовать утилиту mail из пакета mailutils.
Установка mailutils
Сначала установим необходимые пакеты:
sudo apt update
sudo apt install mailutils ssmtp
Настройка ssmtp
Для отправки почты через внешний SMTP-сервер (например, Gmail) нужно настроить ssmtp. Отредактируйте файл конфигурации:
sudo nano /etc/ssmtp/ssmtp.conf
Пример содержимого для Gmail (требуется «пароль приложения»):
root=your_email@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=your_email@gmail.com
AuthPass=your_app_password
UseSTARTTLS=YES
FromLineOverride=YES
Замените your_email@gmail.com и your_app_password на свои данные.
Отправка письма
Теперь можно отправлять письма прямо из терминала:
echo "Текст сообщения" | mail -s "Тема письма" recipient@example.com
Можно также отправить файл как тело письма:
mail -s "Лог ошибок" admin@example.com < /var/log/error.log
Или ввести текст вручную (завершить ввод — Ctrl+D):
mail -s "Ручное письмо" user@example.com
Проверка работы
Если всё настроено верно, письмо должно прийти получателю. При проблемах проверьте логи:
tail -f /var/log/mail.log
Обратите внимание: некоторые почтовые провайдеры (включая Gmail) требуют включить двухфакторную аутентификацию и использовать «пароли приложений» вместо основного пароля.