Иногда нужно, чтобы сервер умел посылать почту. Например, система мониторинга должна извещать админа о сбоях, веб-сервер — оповещать пользователей форума о новых ответах. Для этого в системе должен быть пакет mail-transport-agent. Это виртуальный пакет, то есть на самом деле программы с таким названием не существует. Роль mail-transport-agent может выполнять exim, sendmail, postfix, ssmtp или ещё какая-то почтовая программа.

exim

exim используется в debian-дистрибутивах по дефолту. Большой и многофункциональный, используется, когда сервер является полноценным почтовым сервером. Для нашего случая он годится, но избыточен.

sendmail

sendmail — классический MTA. Для простейшей отправки почты требуются небольшие изменения конфига и совсем немного времени. Но возможностей у sendmail очень много, обычно ненужных. Одно из побочных действий богатства возможностей — необходимость выполнять такой неординарную процедуру, как «компиляция конфигов».

Есть мнение, что он уже покрылся плесенью времён и применяться более не должен, так что его настройку описывать не будем.

ssmtp

В нашем случае отличной заменой sendmail'у может стать ssmtp — действительно маленькая программа с самым базовым функционалом.

sudo apt-get install ssmtp

В конфигурационный файл /etc/ssmtp/ssmtp.conf достаточно внести всего одну строку:

mailhub=192.168.1.1

где 192.168.1.1 — сервер, через который будет ходить почта (например, провайдерский или корпоративный почтовый сервер). Есть возможность указать некоторые другие опции, например, домен отправителя.

nullmailer

FIXME Напишите, кто знает

Проверка

Быстро проверить, работает ли MTA, можно так:

echo "This will go into the body of the mail." | mail -s "Hello world" somebody@example.com