Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Не смотря на то, что в документе указано то, что Exim поставляется в Debian Linux по умолчанию, как это было в предыдущих версиях Debain, свежеустановленный Debian Buster не имеет никакого ПО для отправки электронной почты за пределы сервера.
Предположим, у нас в организации уже имеется почтовый сервер и нам нужно сделать так, чтобы письма, сформированные всевозможными локальными службами и приложениями на нашей Linux-системе, пересылались на этот почтовый сервер (relayhost/smarthost).
Для решения этой задачи мы можем установить в систему простой и легковесный почтовый клиент, умеющий выполнять такую пересылку - msmtp:
# apt install msmtp
Конфигурационные файлы для работы msmtp могут быть, как глобальные на уровне системы, так и на уровне отдельно взятого пользователя системы. Глобальный файл может располагаться в /etc/msmtprc. Файл настроек пользователя может размещаться в профиле в ~/.msmtprc. Получить информацию о настройке конфигурации msmtp можно в man msmtp.
/etc/msmtprc
~/.msmtprc
Примеры конфиг.файлов для системы и пользователя лежат здесь:
# updatedb # locate msmtprc /usr/share/doc/msmtp/examples/msmtprc-system.example /usr/share/doc/msmtp/examples/msmtprc-user.example
Скопируем примерный конфиг.файл уровня системы и откроем его на редактирование:
# cp /usr/share/doc/msmtp/examples/msmtprc-system.example /etc/msmtprc # nano /etc/msmtprc
Задаём в файле адрес внешнего почтового сервера в опциях host / port, а также при необходимости добавляем поле from, в котором указывается имя отправителя почты на тот случай, если в внутренний почтовый сервер использует проверку имён отправителя.
host
port
from
Пример заполненного файла:
# Example for a system wide configuration file # A system wide configuration file is optional. # If it exists, it usually defines a default account. # This allows msmtp to be used like /usr/sbin/sendmail. account default # The SMTP smarthost host kom-smtp.holding.com port 25 # Use TLS on port 465 #port 465 #tls on #tls_starttls off # Construct envelope-from addresses of the form "user@oursite.example" #auto_from on #maildomain oursite.example from KOM-DL20@holding.com # Syslog logging with facility LOG_MAIL instead of the default LOG_USER syslog LOG_MAIL
Сохраняем конфигурационный файл и тестируем отправку с помощью msmtp:
# echo -e "Subject: mSMTP Test" | msmtp DST-Monitoring@holding.com
Должно прийти письмо с адреса, указанного в опции from в конфиг.файле msmtprc. Если письмо не приходит, то можно проанализировать лог отправки:
msmtprc
# cat /var/log/mail.log
В Debian 12 (Boorkworm) классический лог-файл /var/log/mail.log отсутствует, поэтому, согласно настроек нашего конфигурационного файла msmtprc искать лог активности msmtp можно в системном логе с помощью journalctl. Первая команда покажет все уже зафиксированные события системного лога. В случае, если событий в логе очень много, мы можем отфильтровать их вывод, оставив только события, касающиеся facility=LOG_MAIL:
/var/log/mail.log
# journalctl --system # journalctl --system --facility=2
Клиент msmtp это sendmail-совместимое приложение, поэтому для любых служб и приложений сервера, использующих вызов sendmail мы сделаем перенаправление на msmtp. Для начала убедимся в том, что в системе нет действующих ссылок на /usr/sbin/sendmail:
/usr/sbin/sendmail
# ls -la /usr/sbin/sendmail ls: cannot access '/usr/sbin/sendmail': No such file or directory
Слинкуем sendmail с клиентом msmtp:
# ln -s /usr/bin/msmtp /usr/sbin/sendmail # ls -la /usr/sbin/sendmail lrwxrwxrwx 1 root root 14 Aug 21 17:47 /usr/sbin/sendmail -> /usr/bin/msmtp
Теперь можно протестировать приложения, использующие отправку почты. Например, если в системе сконфигурированы программные RAID-массивы mdraid и настроена и сконфигурирована служба оповещений mdmonitor (опции MAILADDR и MAILFROM в /etc/mdadm/mdadm.conf), то можем инициировать разовый тест состояния RAID-устройств с отправкой оповещения:
MAILADDR
MAILFROM
/etc/mdadm/mdadm.conf
# mdadm --monitor --scan --test --oneshot
В результате по каждому из устройств mdraid мы должны получить по отдельному письму. Если это произошло, значит настроенный нами механизм оповещений через msmtp работает успешно.
Дополнительные источники информации:
How To Configure mdadm RAID e-mail Notifications via ISP SMTP Using msmtp
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 21.08.2020 18:22