I was afraid this would happen.
I held off on upgrading to Dovecot 2.4 because of all the configuration changes, but I finally bit the bullet. I ran the conversion tool and it was okay as far as it went, but I'm still having problems.
For the past three days I've been tweaking Dovecot's conf files, and I think I've finally got them to a working state, but my email client (Evolution) only shows me an empty inbox. No Drafts, no Junk, no Sent, and no Trash. Just an empty inbox. I'm sorry if I'm being redundant, but I'm quite frustrated.
Here's the current output of doveconf -n:
2.4.2 (0962ed2104): /etc/dovecot/dovecot.conf
Pigeonhole version 2.4.2 (767418c3)
OS: Linux 7.0.0-31-generic x86_64 Ubuntu 26.04.1 LTS
Hostname: localhost
dovecot_config_version = 2.4.2 dovecot_storage_version = 2.4.2 fts_autoindex = yes fts_autoindex_max_recent_msgs = 999 fts_search_add_missing = yes listen = * mail_control_path = ~/ mail_driver = maildir mail_inbox_path = ~/ mail_index_path = ~/ mail_path = ~/ mail_privileged_group = mail mailbox_list_layout = maildir++ protocols { imap = yes lmtp = yes sieve = yes } sql_driver = mysql ssl = required mysql /var/run/mysqld/mysqld.sock { dbname = postfixadmin password = # hidden, use -P to show it user = postfix } passdb sql { default_password_scheme = ARGON2I driver = sql query = SELECT username AS user, password FROM mailbox WHERE username = '%{user | lower}' AND active = '1' mysql 127.0.0.1 { dbname = postfixadmin password = # hidden, use -P to show it user = postfix } } userdb sql { driver = sql iterate_query = SELECT username AS user FROM mailbox WHERE active = '1' query = SELECT CONCAT('/var/vmail/', maildir) AS home, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '%{user | lower}' AND active = '1' mysql 127.0.0.1 { dbname = postfixadmin password = # hidden, use -P to show it user = postfix } } namespace inbox { inbox = yes prefix = separator = . type = private } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } } service submission-login { inet_listener submission { } inet_listener submissions { } } service lmtp { unix_listener lmtp { mode = 0666 } unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service imap { vsz_limit = 1024M } service submission { } service auth { client_limit = 2048 unix_listener postfix-crypto-auth { group = postfix mode = 0666 user = postfix } } service auth-worker { } service dict { unix_listener dict { } } service stats { unix_listener stats-reader { group = www-data mode = 0660 user = www-data } unix_listener stats-writer { group = www-data mode = 0660 user = www-data } } protocol lda { mail_plugins = $mail_plugins sieve } protocol lmtp { mail_plugins = sieve } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service managesieve { } ssl_server { cert_file = /etc/letsencrypt/live/subdomain.mydomain.tld/fullchain.pem key_file = /etc/letsencrypt/live/subdomain.mydomain.tld/privkey.pem }
Help!
Ken