Введение
Из этого руководства вы узнаете, как настроить sSMTP для получения уведомлений по электронной почте с вашего сервера. И получать письма с выводом от заданий cron.
Необходимо
- Учетная запись электронной почты, от которой будет происходить отправка писем.
Шаг 1 - Установка sSMTP
Подключитесь к вашему серверу через SSH и установите sSMTP. Вы можете сделать это, запустив:
apt update
apt install ssmtp
Шаг 2 - Настройка sSMTP
Файлы конфигурации sSMTP можно найти в каталоге /etc/ssmtp
.
Измените настройки в файле /etc/ssmtp/ssmtp.conf
.
Он должен иметь следующий вид:
MailHub=<smtp.example.com:465>
AuthUser=<cron-sender@example.com>
AuthPass=<cron-sender password>
UseTLS=YES
FromLineOverride=YES
Шаг 3 - Настройка задания cron
Теперь настройте задание cron с помощью crontab -e
.
Перед заданиями cron надо добавить MAILTO=<my-address@example.com>
и MAILFROM=<cron-sender@example.com>
.
MAILTO=<my-address@example.com>
MAILFROM=<cron-sender@example.com>
* * * * * echo 'Hello from cron'
Теперь вы будете получать электронное письмо всякий раз, когда выполняется задание cron.
Шаг 4 - Отключение отправки почту для заданий cron
Если вы не хотите, чтобы задание cron отправляло электронные письма, просто добавьте >/dev/null 2>&1
в его конец.
Это перенаправит stdout и stderr этого задания в /dev/null
, и электронное письмо отправлено не будет.
MAILTO=<my-address@example.com>
MAILFROM=<cron-sender@example.com>
* * * * * echo 'This text will be sent to /dev/null' >/dev/null 2>&1
Заключение
Настроив sSMTP на сервере, вы будете получать электронные письма для каждого задания cron. Это может быть очень полезно, например, если вы автоматически обновляете некоторые службы на сервере. Однако при большом количестве писем это может сильно раздражать. Если у вас, например, есть задание cron, которое выполняется каждую минуту, вы также будете получать электронное письмо каждую минуту, поэтому убедитесь, что вы тщательно выбрали, какие задания будут отправлять электронные письма.