Александр Есин / блог

Почтальон Печкин у тебя дома. Часть 1

28 сентября 2026

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

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

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

Для начала нам нужно понимать самые основные вещи: нужен белый статический IP-адрес от провайдера и обратная запись в DNS, которая будет соответствовать нашему почтовому хосту. Допустим, это будет mail.ivanov.ru.

С IP-адресом могут быть проблемы. Он может быть где-то уже заюзан, попасть в черные списки DNSBL. Это можно узнать через, например, сайт mxtoolbox. Кроме того (неочевидный, но решаемый момент), некоторые провайдеры, например, мой Дом.ру, делают пометку в анонсе своих ASN, что сеть является частной (домашней). В этом случае такие провайдеры, как Google, не будут принимать с этих адресов почту. Этот вопрос тоже решается, расскажу во второй части. Кроме того, у провайдеров есть "любовь" блочить 25 порт. Это тоже решаемо или обращением в поддержку, или сменой порта. Не 25 портом одним почта жива)

Теперь к практическому применению. Конечно, я тут мог бы расписать длинную-предлинную историю как развернуть Exchange или вообще все поднять на Dovecot, Postfix и smtpd, но делать этого не буду. Для дома нужно простое и элегантное решение.

Такое решение есть. Это проект poste.io — https://poste.io/. Это Docker-контейнер, который разворачивает "из коробки" небольшой почтовый сервер, функционала которого вполне хватит для дома/семьи (календарных возможностей у него нет).

Установка — фактически одна команда. Потребуются: 64-битный Linux, Docker, чуть-чуть свободных RAM и CPU (их едят антиспам и антивирус) и публичный IP с настроенной PTR-записью.

docker run \
    --net=host \
    -e TZ=Europe/Moscow \
    -v /opt/poste/data:/data \
    --name "mailserver" \
    -h "mail.ivanov.ru" \
    -d -t analogic/poste.io

Образ на Docker Hub — analogic/poste.io (вариант poste.io/mailserver требует логина, это лицензионная ветка, содержательно то же самое). --net=host — рекомендованная схема: не нужно пробрасывать порты и возиться с NAT. Весь сервер — конфигурация, письма, сертификаты — лежит в одной папке /data, что удобно для бэкапа и переноса.

После старта открываем https://<IP-адрес> (сертификат сначала самоподписанный), мастер установки предлагает задать пароль веб-администратора. Дальше через админку добавляем почтовый домен и пользователей.

Порты, которые должны слушать и быть открыты снаружи: 25 — приём почты от других серверов (без него это не сервер), 465/587 — отправка клиентами, 993 — IMAP, 80/443 — вебмейл и получение сертификатов Let's Encrypt.

DNS: A-запись mail.ivanov.ru -> IP-адрес, MX-запись ivanov.ru -> mail.ivanov.ru. PTR — запрос провайдеру, она должна совпадать с hostname почтового хоста.

После этого мы получим вполне рабочий почтовик с веб-интерфейсом на базе Roundcube, поддержкой IMAP. Самая интересная часть впереди — настройка записей в DNS, ключей и других плюх, на которых многие и спотыкаются. Подписывайтесь на канал — во второй части все расскажу 😉