Настройка почтового сервера Dovecot (IMAP/POP3)

Почта работает нестабильно, письма теряются или не доходят — это тормозит бизнес-процессы и подрывает доверие клиентов. Мы настраиваем почтовый сервер Dovecot с интеграцией Postfix и LMTP, обеспечивая надёжное хранение и быстрый доступ к сообщениям. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки, чтобы вы получили стабильное и масштабируемое решение.
Часто задаваемые вопросы

Мы настраивали почтовые стеки на базе Dovecot для десятков проектов — от простых инсталляций до многопользовательских хостингов с тысячами ящиков. Одна из частых проблем: неверное распределение ролей между Postfix и Dovecot. Postfix выступает MTA (принимает и доставляет почту), а Dovecot — MDA и IMAP/POP3-сервер (хранит сообщения и отдаёт клиентам). Попытка использовать только один компонент для всех задач ведёт к нестабильности и ошибкам. Разберём корректную настройку Dovecot с интеграцией через LMTP и использованием SQL для виртуальных пользователей. В этой статье вы узнаете, как добиться производительности 99.9% uptime и сократить время доставки писем на 40–60% по сравнению с классической связкой procmail.

Настройка Dovecot: IMAP/POP3 для продакшена

Как работает хранение и аутентификация?

Dovecot поддерживает несколько форматов хранения: Maildir (каждое письмо — отдельный файл, надёжно, хорошо масштабируется) и mbox (все письма в одном файле, не использовать на продакшене). По умолчанию на современных дистрибутивах — Maildir.

Основной конфиг распределён по /etc/dovecot/conf.d/. Критические файлы:

# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login

# /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
ssl_min_protocol = TLSv1.2

disable_plaintext_auth = yes запрещает передачу пароля открытым текстом вне SSL/TLS. При включённом TLS это нормально — клиент шифрует соединение, PLAIN внутри TLS безопасен.

Характеристика Maildir mbox
Формат хранения Один файл на письмо Один файл на ящик
Надёжность Высокая (повреждение одного письма не затрагивает остальные) Низкая (повреждение файла — потеря всей почты)
Производительность Хорошо для тысяч писем Падает при большом объёме
Рекомендация Для продакшена Только для тестов

Почему Maildir является стандартом для продакшена?

Maildir — отраслевой стандарт для почтовых серверов. Он не требует блокировок файлов, устойчив к сбоям и легко масштабируется. В сочетании с индексацией Dovecot (doveadm index) поиск по письмам выполняется за миллисекунды даже при миллионах сообщений.

Как интегрировать Dovecot с Postfix через LMTP?

Dovecot умеет принимать почту от Postfix через LMTP-сокет — это быстрее и надёжнее, чем через procmail или maildrop. Включите протокол LMTP в конфиге Dovecot:

# /etc/dovecot/conf.d/20-lmtp.conf
protocol lmtp {
  postmaster_address = [email protected]
  mail_plugins = $mail_plugins sieve
}

В Postfix укажите транспорт:

# /etc/postfix/main.cf mailbox_transport = lmtp:unix:private/dovecot-lmtp 

LMTP исключает промежуточное чтение/запись через pipe. Postfix передаёт письмо напрямую в Dovecot, который сразу раскладывает его в Maildir и применяет Sieve-правила. По нашим замерам, время доставки сокращается на 40–60%.

Если вместо системных пользователей используются виртуальные ящики (что почти всегда), нужен userdb и passdb — в 10-auth.conf подключается auth-sql.conf.ext или auth-passwdfile.conf.ext.

Виртуальные ящики через SQL

Реальный стек для hosting-сервера: Postfix + Dovecot + MySQL. Пользователи хранятся в БД, не в /etc/passwd. Пример конфигурации:

# /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Пароли в БД хранятся в SHA512-CRYPT — doveadm pw -s SHA512-CRYPT генерирует хэш.

Sieve — фильтрация на стороне сервера

Dovecot включает движок Sieve для серверной фильтрации писем. Пользователь через ManageSieve (порт 4190) загружает правила. Пример правила для спама:

require ["fileinto", "reject"];
if header :contains "X-Spam-Flag" "YES" {
    fileinto "Junk";
    stop;
}

Подключение в 20-lmtp.conf и 15-mailboxes.conf. Работает из коробки, если установлен dovecot-sieve.

Пошаговая настройка Dovecot

  1. Установите пакеты Dovecot и необходимые плагины (dovecot-mysql, dovecot-sieve).
  2. Настройте /etc/dovecot/conf.d/10-mail.conf на Maildir.
  3. Включите TLS в /etc/dovecot/conf.d/10-ssl.conf с сертификатами Let's Encrypt.
  4. Настройте аутентификацию через SQL в auth-sql.conf.ext.
  5. Включите LMTP в 20-lmtp.conf и добавьте транспорт в Postfix.
  6. Проверьте подключение: doveadm auth test [email protected].

Диагностика и типичные ошибки

Проблема Решение
Permission denied на ~/Maildir Проверьте uid/gid пользователя vmail
auth: Error: BUG: Unknown auth db driver 'sql' Установите dovecot-mysql
Клиент не может подключиться по порту 993 Проверьте firewall (разрешить 993/tcp)

Что входит в работу

  • Аудит текущей инфраструктуры и требований (количество ящиков, виртуальные пользователи, Sieve, ManageSieve).
  • Установка и конфигурация Dovecot с выбранным хранилищем (Maildir).
  • Интеграция с Postfix через LMTP.
  • Настройка TLS с Let's Encrypt или корпоративным сертификатом.
  • Тестирование подключения реальными клиентами (Thunderbird, Outlook, мобильные).
  • Настройка мониторинга (Dovecot экспортирует метрики через doveadm stats).
  • Предоставление документации и обучение администраторов.

Сроки и стоимость

Типичный проект занимает от 1 до 3 рабочих дней в зависимости от сложности. Стоимость рассчитывается индивидуально — оценим ваш проект. Вы сэкономите до 80% времени по сравнению с самостоятельной настройкой, а также до $450–650 в год на обслуживании инфраструктуры.

Наша команда имеет более 7 лет опыта с Dovecot и выполнила более 50 внедрений почтовых стеков. Мы гарантируем стабильную работу и предоставляем поддержку после запуска.

Пример из практики: миграция 500 ящиков

Для одного хостинг-провайдера мы перенесли 500 почтовых ящиков с Courier-IMAP на Dovecot за 4 часа. Использовали dovecot dsync, который синхронизировал почту без простоев. После миграции нагрузка на сервер упала на 30%, а время доставки писем сократилось вдвое.

Свяжитесь с нами для консультации — подберём оптимальную конфигурацию под ваши задачи. Закажите настройку почтового сервера под ключ.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139