Не с первой попытки раскололся этот орешек, не с первой, зараза! Вроде бы все просто – поставил клиент-SMTP, отправил письмо! Но нет, это же Линукс, будь он не ладен! О, есть же Интернет, всемирная паутина, там есть все! Но, опять же, нет! Все то все, да не все в одном месте – чтобы понять, как тут настроить банальную отправку почты, пришлось усиленно искать и, как говорится, собирать информацию по крупицам, т.к. в одном месте одно не работает, в другом – что-то другое…
Причем задача стояла реализовать это максимально просто – без использования многофункциональных программ или хитрых настроек.
И так, для реализации понадобятся два пакета, которые устанавливаются, как обычно:
sudo apt update && sudo apt upgrade
;sudo apt install ssmtp mailutils
.Дело, к слову, происходит на Raspberry Pi 4 Model B, что не важно, с установленной Raspberry Pi OS 11 (bullseye), что уже важнее.
Открыть файл конфигурации ssmtp sudo nano /etc/ssmtp/ssmtp.conf
и, если вкратце, заменить его следующим1):
root=root@domain.zone mailhub=smtp.domain.zone hostname=server.domain.int FromLineOverride=NO AuthUser=root@domain.zone AuthPass=Pa$$W0Rd UseSTARTTLS=NO UseTLS=NO
Думаю, тут все понятно. Первое, это от какого имени отправлять письма для пользователей с id < 1000, т.е. системных. Последние 2, скорее всего, можно опустить, т.к. «UseTLS» по умолчанию и так выключен, а вот «UseSTARTTLS» не понятно, в мане не сказано.
Далее открыть sudo nano /etc/ssmtp/revaliases
и добавить в него псевдоним для пользователя «pi»2):
pi:root@domain.zone:smtp.domain.zone
Если этого не сделать, то письма будут пытаться отправлять от имени «pi@server.domain.int», что, скорее всего, заставит SMTP-сервер отклонить сообщение.
На этом, собственно, все.
Стоит только упомянуть, что эта конфигурация заточена на работу с внутренним релеем3), поэтому отключено все, кроме пароля, который, к слову, тоже можно в данном случае опустить…
Для проверки конфигурации можно выполнить echo "Тестовое сообщение!" | ssmtp -v admin@domain.zone
4).
Для полноценной работы, необходимо использовать утилиту «mail» с примерно таким синтаксисом – echo "Тело сообщения" | mail -s "Mail subject" admin@domain.zone
.
Чтобы использовать русский язык в теме, ее необходимо закодировать в Base64 и разместить внутри конструкции:
=?UTF-8?B?____________?=
К примеру, – echo "Тело сообщения" | mail -s =?UTF-8?B?0J/RgNC40LLQtdGCIHdvcmxkIQ==?= admin@domain.zone
5).
Обсуждение