Hi!
It is required to collect statistics about the time of the last IMAP and POP3 login of the user and the delivery of letters to him via lmtp. The last-login plugin is perfect. But I don't want to use heavy databases as the mail system service is served by the Oracle DB.
The most suitable option, as I see, is to store statistics in the sqlite DB, but after going through all the options in the configuration file, I could not use sqlite.
When writing in configuration: plugin { driver=sqlite last_login_dict = sqlite:statsdb last_login_key = last-login/%s/%u/%r last_login_precision = ms }
I am getting an error: Oct 4 17:01:41 nms4 dovecot: imap(new_ver_test@test2.aroma.ru)<154597><q0VJ5jXq9o4KAQDI>: Error: last_login_dict: dict_init(sqlite:statsdb) failed: Unknown dict module: sqlite
I did the last-login plugin setup exactly according to the instructions: https://doc.dovecot.org/configuration_manual/mail_location/obox/last_login_p...
I am using standard debian packages. Desperate, I built latest dovecot version from source, but got exactly the same error.
Tell me, please, is it possible to use a dictionary in sqlite format to collect last-login plugin statistics? And how should I describe it in the configuration file?
Sincerely, Oleg
Additional Information:
# /sbin/dovecot --build-options Build options: ioloop=epoll notify=inotify openssl io_block_size=8192 SQL driver plugins: mysql postgresql sqlite Passdb: checkpassword ldap pam passwd passwd-file shadow sql Userdb: checkpassword ldap(plugin) passwd prefetch passwd-file sql
# /sbin/dovecot -n # 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.13 (cdd19fe3) # OS: Linux 5.10.0-18-amd64 x86_64 Debian 11.5 # Hostname: nms4.some.host auth_default_realm = some.host auth_verbose = yes dict { statsdb = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no first_valid_uid = 89 mail_debug = yes mail_gid = vmail mail_location = maildir:~/Maildir mail_plugins = quota mail_privileged_group = mail mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = username_format=%u /etc/postfix/vusers.conf driver = passwd-file } plugin { driver = sqlite last_login_dict = sqlite:statsdb last_login_key = # hidden, use -P to show it last_login_precision = ms quota = maildir quota_grace = 10%% sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = " imap lmtp sieve pop3 sieve" service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { group = vmail user = vmail } } service lmtp { executable = lmtp -L inet_listener lmtp { address = 10.1.0.187 port = 24 } process_min_avail = 5 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } user = vmail } service managesieve-login { inet_listener sieve { port = 4190 } } ssl_cert = </etc/letsencrypt/live/some.host/fullchain.pem ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { args = username_format=%u /etc/postfix/vusers.conf driver = passwd-file override_fields = uid=vmail gid=vmail } protocol lmtp { info_log_path = /var/log/dovecot-lmtp.log mail_plugins = quota sieve quota last_login } protocol imap { mail_plugins = quota imap_quota last_login } protocol sieve { managesieve_max_line_length = 64 k } protocol pop3 { mail_plugins = quota last_login }
-- /petol http://kab.tv/rus