Налаштування поштового сервера 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% часу порівняно з самостійним налаштуванням, а також до 50 000 грн на рік на обслуговуванні інфраструктури.

Наша команда має понад 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