 Autor: [Tomasz Nowosielski](/autorzy/tomasz-nowosielski) Redaktor naczelny, analityk hostingu · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Dovecot IMAP/POP3 — konfiguracja

# Dovecot IMAP/POP3 — konfiguracja serwera pocztowego

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS / Mail server

Dovecot to najpopularniejszy serwer IMAP/POP3 na Linuksie — lekki, bezpieczny i wyjątkowo szybki. W parze z Postfixem tworzy kompletny stack mailowy, na którym stoi większość samohostowanych serwerów pocztowych. Ten przewodnik pokazuje pełną konfigurację od instalacji do uruchomienia, z autoryzacją z pliku i z MySQL, z TLS, integracją LMTP oraz wyborem między Maildir a mdbox.

## Instalacja i struktura pakietów

Dovecot jest podzielony na moduły — instalujesz tylko te, które są potrzebne. W Debianie i Ubuntu typowy zestaw dla serwera IMAP z autoryzacją MySQL i filtrami Sieve wygląda tak:

\# Ubuntu/Debian — instalacja Dovecota z modułami
sudo apt update
sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d \\
                    dovecot-lmtpd dovecot-mysql dovecot-sieve \\
                    dovecot-managesieved

# Sprawdź wersję i dostępne moduły
dovecot --version
# 2.3.19.1 (9b53102964)

dovecot --build-options
# Mails: shared mdbox sdbox maildir mbox ...
# SQL drivers: mysql pgsql sqlite
# Passdb: passwd passwd-file shadow pam ldap sql ...

Po instalacji katalog `/etc/dovecot/` zawiera plik główny `dovecot.conf` i podkatalog `conf.d/` z plikami tematycznymi (10-auth.conf, 10-mail.conf, 10-ssl.conf, 10-master.conf itd.). Nie edytuj wszystkiego w jednym pliku — Dovecot wczytuje wszystkie pliki `.conf` z conf.d po kolei.

## dovecot.conf — podstawowa konfiguracja

Poniżej minimalna, ale produkcyjnie używalna konfiguracja główna — włącza IMAP i POP3, wymusza TLS, ustawia ścieżkę do skrzynek użytkowników wirtualnych i loguje do syslog:

\# /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp sieve

# Listen tylko na IPv4 + IPv6
listen = \*, ::

# Logi
log\_path = /var/log/dovecot.log
info\_log\_path = /var/log/dovecot-info.log
log\_timestamp = "%Y-%m-%d %H:%M:%S "

# Include wszystkich plików conf.d
!include conf.d/\*.conf
!include\_try local.conf

\# /etc/dovecot/conf.d/10-mail.conf
# Lokalizacja skrzynek — %n to nazwa użytkownika, %d to domena
mail\_location = maildir:/var/vmail/%d/%n/Maildir

# Użytkownik systemowy posiadający katalogi
mail\_uid = vmail
mail\_gid = vmail
mail\_privileged\_group = mail

# Namespace IMAP (INBOX, folders)
namespace inbox {
    inbox = yes
    separator = /
    prefix =
}

## Autoryzacja — passwd-file vs MySQL

Dovecot rozróżnia **passdb** (co sprawdza hasło) i **userdb** (skąd bierze UID/GID/home dir). Oba mogą używać różnych backendów. Dla małych instalacji wystarczy plik płaski; dla wielu domen z panelem CMS — MySQL.

\# /etc/dovecot/conf.d/10-auth.conf — wariant passwd-file
disable\_plaintext\_auth = yes
auth\_mechanisms = plain login

passdb {
    driver = passwd-file
    args = scheme=BLF-CRYPT username\_format=%u /etc/dovecot/passwd
}

userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%d/%n
}

\# Utworzenie pliku passwd z hashami bcrypt
sudo touch /etc/dovecot/passwd
sudo chmod 640 /etc/dovecot/passwd
sudo chown root:dovecot /etc/dovecot/passwd

# Dodaj użytkownika (bcrypt)
HASH=$(doveadm pw -s BLF-CRYPT -p 'tajne-haslo-123')
echo "jan@example.com:${HASH}" | sudo tee -a /etc/dovecot/passwd

# Format pliku:
# jan@example.com:{BLF-CRYPT}$2y$05$Bwxjn...

\# /etc/dovecot/conf.d/10-auth.conf — wariant MySQL
# Zakomentuj passdb passwd-file i włącz:
passdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
}

# /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=tajne
default\_pass\_scheme = ARGON2ID

password\_query = \\
  SELECT email as user, password FROM virtual\_users WHERE email = '%u'

user\_query = \\
  SELECT 150 AS uid, 8 AS gid, \\
         CONCAT('/var/vmail/', SUBSTRING\_INDEX('%u','@',-1), '/', \\
                SUBSTRING\_INDEX('%u','@',1)) AS home, \\
         CONCAT('\*:bytes=', quota\_bytes) AS quota\_rule \\
  FROM virtual\_users WHERE email = '%u'

## TLS / SSL — szyfrowanie IMAP i POP3

Bez TLS hasła latają plain textem. Dovecot obsługuje dwa tryby: STARTTLS (port 143 dla IMAP, 110 dla POP3 — szyfrowanie po handshake) i implicit TLS (port 993 dla IMAPS, 995 dla POP3S — szyfrowanie od pierwszego bajtu). Nowoczesne klienty używają implicit TLS.

\# /etc/dovecot/conf.d/10-ssl.conf
ssl = required

# Ścieżki do certyfikatów (Let's Encrypt)
ssl\_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl\_key  = </etc/letsencrypt/live/mail.example.com/privkey.pem

# Nowoczesne ciphersuites
ssl\_min\_protocol = TLSv1.2
ssl\_cipher\_list = ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM
ssl\_prefer\_server\_ciphers = yes

# DH parameters (raz, trwa chwilę)
# openssl dhparam -out /etc/dovecot/dh.pem 2048
ssl\_dh = </etc/dovecot/dh.pem

## Integracja z Postfix przez LMTP

LMTP (Local Mail Transfer Protocol) to preferowany sposób dostarczania poczty z Postfixa do Dovecota. W odróżnieniu od bezpośredniego zapisu do Maildir przez Postfix, LMTP pozwala Dovecotowi wymuszać kwoty i uruchamiać filtry Sieve przy dostarczeniu.

\# /etc/dovecot/conf.d/10-master.conf — sekcja LMTP
service lmtp {
    unix\_listener /var/spool/postfix/private/dovecot-lmtp {
        mode = 0600
        user = postfix
        group = postfix
    }
}

service auth {
    unix\_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}

\# /etc/postfix/main.cf — przekazanie lokalnej poczty do Dovecota
virtual\_transport = lmtp:unix:private/dovecot-lmtp
smtpd\_sasl\_type = dovecot
smtpd\_sasl\_path = private/auth
smtpd\_sasl\_auth\_enable = yes

# Po zmianach
sudo systemctl restart dovecot postfix
doveadm log test
doveadm auth test jan@example.com

## Maildir vs mdbox vs mbox — porównanie

Wybór formatu skrzynek wpływa na wydajność, niezawodność i łatwość backupu. Rekomendacje zależą od rozmiaru skrzynki i rodzaju obciążenia:

Format

Struktura

Wydajność

Backup

Kiedy używać

`Maildir`

Plik per wiadomość (cur/new/tmp)

Dobra do 5k maili

rsync, proste

Małe/średnie skrzynki, prostota

`mdbox`

Pliki po ~2 MB z wieloma wiadomościami

Bardzo dobra

doveadm backup

Duże skrzynki 10k+, SIS

`sdbox`

Jak Maildir ale w formacie Dovecot

Dobra

doveadm backup

Gdy chcesz metadane bez mdbox

`mbox`

Jeden plik na folder (legacy)

Słaba dla concurrent

Problematyczny

Nie używaj — legacy

\# Migracja z Maildir do mdbox dla istniejącej skrzynki
doveadm backup -u jan@example.com mdbox:/var/vmail/example.com/jan/mdbox

# Zmień mail\_location w 10-mail.conf:
# mail\_location = mdbox:/var/vmail/%d/%n/mdbox
sudo systemctl restart dovecot

## Najczęstsze pytania

Czym różni się Dovecot od Postfixa? +

Postfix to MTA (Mail Transfer Agent) — odbiera i wysyła pocztę między serwerami przez SMTP (port 25/587). Dovecot to MDA/MRA (Mail Delivery/Retrieval Agent) — udostępnia pocztę użytkownikom końcowym przez IMAP (port 143/993) lub POP3 (port 110/995). W typowym stacku Postfix odbiera wiadomość, zapisuje ją do Maildir użytkownika (np. przez LMTP do Dovecot), a klient pocztowy (Thunderbird, Outlook) łączy się z Dovecotem po IMAP aby ją przeczytać. Oba programy są niezależne ale komplementarne.

Maildir czy mdbox — który format wybrać? +

Maildir trzyma każdą wiadomość jako osobny plik (cur/new/tmp) — prosty, niezawodny, łatwy do backupu przez rsync, ale wolny przy dużych skrzynkach (10k+ maili w jednym katalogu to problem dla filesystemu). mdbox (Dovecot-specific) pakuje wiadomości w większe pliki (domyślnie do 2 MB), co drastycznie poprawia wydajność dla dużych skrzynek i daje lepsze wsparcie single-instance storage (duplikaty w załącznikach są przechowywane raz). Dla skrzynek do 5000 wiadomości Maildir jest OK, powyżej rekomendujemy mdbox.

Jak skonfigurować LMTP między Postfix a Dovecot? +

LMTP (Local Mail Transfer Protocol, RFC 2033) to prosty protokół dostarczania lokalnego — Postfix przekazuje wiadomość do Dovecota, który zapisuje ją do Maildir i wymusza kwoty/filtry Sieve. W Dovecocie włącz service lmtp z socketem UNIX (np. /var/spool/postfix/private/dovecot-lmtp). W Postfixie ustaw mailbox\_transport = lmtp:unix:private/dovecot-lmtp. Zyskujesz: kwoty Dovecota respektowane, Sieve filters, server-side sorting, lepsze logi. To standardowy setup produkcyjny.

Czy Dovecot wspiera uwierzytelnianie z bazy MySQL? +

Tak. Dovecot ma backendy auth: passwd (system linuxowy), passwd-file (plik płaski), sql (MySQL/PostgreSQL), ldap, pam. Dla wirtualnych użytkowników (bez kont systemowych) typowym wyborem jest sql z tabelą zawierającą email, password\_hash, quota, home. Plik /etc/dovecot/dovecot-sql.conf.ext definiuje query SELECT password FROM virtual\_users WHERE email = %u. Hashe haseł: ARGON2ID lub BLF-CRYPT (bcrypt). To standard w mail serverach dla wielu domen (ISPmail tutorial).

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z pełną kontrolą nad portami 25/143/587 — idealny pod własny mail server

VPS

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

Mikrus

Tani VPS do testów konfiguracji Postfix + Dovecot

Dev/Test

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

LH.pl

Jeśli nie chcesz sam administrować poczty — gotowe skrzynki IMAP z antyspamem

Managed

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

## Powiązane strony

-   [Email hosting — konfiguracja MX/IMAP/SMTP](/baza-wiedzy/email-hosting-konfiguracja)
-   [SMTP relay — konfiguracja](/baza-wiedzy/smtp-relay-hosting-konfiguracja)
-   [SPF, DKIM, DMARC — konfiguracja](/baza-wiedzy/spf-dkim-dmarc-konfiguracja)
-   [OpenDKIM z Postfixem — konfiguracja](/baza-wiedzy/opendkim-postfix-konfiguracja)
-   [Wszystkie artykuły](/baza-wiedzy/)