A kvóta egy Dovecot háttér(szolgáltatás), amely többféle módon is képes nyilvántartani a felhasználók postafiókjának méretét. Ha ez a méret meghalad egy előre beállított értéket, akkor a Dovecot LDA szolgáltatása nem kézbesíti a levelet, hanem értesíti feladóját arról, hogy a címzettnek nem tudja továbbítani a levelet, mivel a postafiók mérete meghaladja a megengedett értéket.
A kvótaadatok több helyről is származhatnak, például egy fájlrendszerből, de elhelyezhetjük ezeket egy megfelelően kialakított MySQL adatbázisban is. Esetünkben pedig pontosan erről van szó.
Első lépésként meg kell határozni egy szótár alapú szolgáltatást (jelen esetben dict néven), amelyet a 10-master.conf fájlban végzünk el:
service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }
Második lépésként a dovecot.conf fájlban meghatározunk egy quota_dict nevű szótárat, amelyet az előbb létrehozott dict nevű szolgáltatás fog felhasználni a kvóta adatok megfelelő kikereséséhez.
dict { quota_dict = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }
A szótár hivatkozik a dovecot-dict-sql.conf.ext fájlra, amelynek tartalma a következő:
connect = host=localhost dbname=postfix user=postfix password=Pa$$w0rd map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }
A szótár alapú kvóta háttérszolgáltatás alkalmas mind az üzenetek száma, mind pedig azok mérete szerinti kvóta beállítására is. Az adatok a quota2 táblában találhatóak, ahol a username mező tartalmazza az adott felhasználó bejelentkezési nevét, a bytes mező a kvóta méretét bájtokban, a messages mező pedig az üzenetek maximális számát.
Harmadik lépésként a 90-quota.conf fájlban élesítjük a kvótarendszert:
plugin { quota = dict:user::proxy::quota_dict }
Azaz: a kvóta dictionary alapú háttérszolgáltatást használ (dict:), felhasználó alapú (user:), az aktuálisan bejelentkezett felhasználó neve alapján keres (:), egy szótár proxy folyamatot használ az SQL kapcsolódáshoz (proxy::), és a quota_dict nevű szótárat használja fel mindehhez, amelyet a dovecot.conf fájlban már korábban meghatároztunk.
A 10-mail.conf fájlban hozzáadjuk a használt pluginekhez a quota plugint
mail_plugins = $mail_plugins quota
A 20-imap.conf fájlban az imap-specifikus quota plugint szintén:
protocol imap { mail_plugins = $mail_plugins imap_quota mail_max_userip_connections = 10 }
A 20-pop3.conf fájlban is engedélyezzük:
protocol pop3 { mail_plugins = $mail_plugins quota }
Végül a 15-lda.conf fájlban is:
protocol lda { mail_plugins = $mail_plugins quota }