Как мы поднимали почту на собственном сервере (Ubuntu + Exim4 + Dovecot) и победили почти все ошибки
Когда я перенёс форум inva.life на свой сервер, я понимал: веб-часть — это только половина дела. Настоящая боль начинается, когда ты запускаешь свой почтовый сервер.
Сначала письма не принимались вообще.
Потом не работал IMAP.
Потом не поднимался Dovecot.
Потом не слушались SMTP-порты.
Потом Gmail начал отказывать в доставке.
Это была полноценная отладка всей почтовой цепочки:
DNS → Exim → TLS → Dovecot → SMTP AUTH → Outlook → внешние сервера.
Ниже — полный разбор того, что мы делали и какие правки реально помогли.
Архитектура
- ОС: Ubuntu 24.04
- MTA: Exim4
- IMAP/POP3: Dovecot
- Сертификат: Let’s Encrypt (через ISPmanager)
- Почтовый домен: inva.life
- Почтовый сервер: mail.inva.life
Проблема №1 — Exim отправлял почту «в себя», а не локально
При проверке:
Код:
exim -bt admin@inva.life
Сервер показывал:
Код:
router = dnslookup, transport = remote_smtp
То есть он считал домен внешним.
Решение
Файл:
Код:
/etc/exim4/domains
Добавили:
Код:
inva.life: 1
Проверка:
Код:
exim -be '${if match_domain{inva.life}{+local_domains}{YES}{NO}}'
Ответ: YES
После этого Exim начал понимать, что это локальный домен.
Проблема №2 — Dovecot не запускался
Ошибка:
Код:
systemctl restart dovecot
Job for dovecot.service failed
Причина — некорректная SSL-конфигурация.
Настройка SSL для Dovecot
Файл:
Код:
/etc/dovecot/conf.d/10-ssl.conf
Установили:
Код:
ssl = required
ssl_cert = </var/www/httpd-cert/user/inva.life_le2.crt
ssl_key = </var/www/httpd-cert/user/inva.life_le2.key
Проверка:
Код:
openssl s_client -connect localhost:993
Если видим сертификат Let’s Encrypt — всё работает.