# Postfix. Установка и первичная настройка

Postfix — это агент для передачи почты. Удобное и быстрое решение, когда разворачивать полноценный SMTP-сервер на машине нет необходимости. Postfix удобно использовать для отправки уведомлений из различных приложений, работающих на сервере, или для создания почтовых рассылок.

В этой инструкции мы установим Postfix и настроим его для отправки почтовых уведомлений.

Для начала работы нам потребуется подготовленный к работе сервер, например, на Ubuntu.

# Установка Postfix

Устанавливать Postfix будем с помощью стандартной команды apt. Вместо того чтобы установить только Postfix, мы установим пакет программ для работы с почтой, в который входит не только сам Postfix, но и несколько других полезных утилит, позволяющих отправлять почту напрямую из командной строки:

sudo apt install mailutils

В ходе установки apt предложит сразу же настроить конфигурацию почтового агента. Если этого по каким-то причинам не произойдёт, настроить почтового агента всегда можно:

sudo dpkg-reconfigure postfix

В процессе настройки программа собирает данные о базовых настройках почтового агента, которые затем укажет в конфигурационном файле:

  • General type of mail configuration — здесь укажем Satellite system, поскольку мы будем использовать агент только для отправки уведомлений.

  • System mail name — доменное имя, с которого должны будут отправлять письма.

  • SMTP relay host — имя хоста, через который будут пересылаться письма. Поскольку мы будем отправлять почту непосредственно с нашего сервера, то это поле нам не нужно — оставим его пустым.

  • Root and postmaster mail recipient — поле, в котором указывается почтовый адрес администратора домена. Если его не указать, то вся почта, отправленная администратору, будет сохраняться в папке /var/mail/nobody.

  • Other destinations to accept mail for — здесь описываются доменные имена и адреса, для которых эта машина является почтовым сервером, указываем localhost и наше основное доменное имя.

Далее следуют поля с указанием синхронизации почтовых запросов и адреса, с которого будет происходить подключение к почтовому агенту (в нашем случае это локальный адрес 127.0.0.1).

В поле, отвечающем за размер почтового ящика, можно указать непосредственное значение дискового пространства, отводимого под почтовый ящик. Вы можете указать 0, чтобы объём почтового ящика был ограничен лишь общим дисковым пространством.

Далее выбираем протокол, который будет использоваться для связи (IPv4, IPv6 или оба) и запускаем создание конфигурационнного файла.

После этого установку Postfix можно считать законченной и переходить к настройке агента.

# Настройка Postfix

После завершения конфигурации Postfix настроим его для работы с отправкой уведомлений. Откроем конфигурационный файл:

sudo vim /etc/postfix/main.cf

Здесь найдём строку inet_interfaces= и заменим в ней значение all на loopback_only. Этот параметр указывает сетевые интерфейсы, с которых агент может принимать заявки на отправку почты. Здесь мы указали, что отправлять почту агент может только по указанию локального сервера — никаких указаний извне он принимать не может.

Далее в строке mydestination укажем доменные имена, для которых наш почтовый агент будет получать почту: localhost.$mydomain, localhost, $myhostname.

Основная часть настройки почтового агента закончена. Осталось только перезапустить его:

sudo systemctl reload postfix

# Тестирование настройки

После перезагрузки почтового агента можно переходить к его тестированию. Отправим тестовое письмо:

sudo echo "E-mail content" | mail -s "Subject of the e-mail" your_email_address

Если настройка была выполнена верно, и все параметры указаны правильно, то на указанный здесь почтовый ящик должно прийти письмо с темой «Subject of the e-mail» и с телом «E-mail content».

# Проблемы в работе Postfix

Основная проблема при отправке писем с помощью SMTP-агента — блокировка рабочего порта. По умолчанию все SMTP-агенты используют порт 25 для отправки сообщений. Большинство провайдеров блокирует этот порт, поскольку его часто используют для массовых почтовых рассылок.

Если тестовое письмо не пришло на указанный почтовый ящик (не забудьте заглянуть в папку «Спам»), можно проверить, действительно ли дело в заблокированном порте 25.

Для этого посмотрим лог почтового агента:

sudo tail -n 10 /var/log/syslog

Эта команда выведет на экран последние 10 строк лога Postfix. В логе мы должны увидеть запись вроде Connection timed out или Connection refused. В строке с этой записью обычно указан IP-адрес и порт, по которому не прошло соединение.

Вводим команду:

sudo traceroute -p 25 IP_address

Она проверяет доступность порта 25. Если он заблокирован, вывод команды будет выглядеть примерно так:

host_name (IP_address)  0.513 ms !X  0.490 ms !X  0.476 ms !X

Чтобы открыть порт, обратитесь в службу технической поддержки своего провайдера — как правило, блокировка у провайдеров настроена таким образом, что обойти её невозможно.

Мы описали быстрый способ настройки почтового агента и протестировали его работу. Теперь вы можете настраивать отправку почтовых уведомлений из своих приложений прямо с сайта.