Как отправить почту из терминала 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) требуют включить двухфакторную аутентификацию и использовать «пароли приложений» вместо основного пароля.

← Все заметки | Запись на сайте


Заметки в Telegram