Hi Aki,
I tried it with our configuration and it failed and asked to contact the list ;)
Here's my configuration:
2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
Pigeonhole version 0.5.21.1 (49005e73)
OS: Linux 6.8.0-88-generic x86_64 Ubuntu 20.04.6 LTS
Hostname: 1307e47933b7
auth_cache_negative_ttl = 2 mins auth_cache_size = 10 M auth_cache_ttl = 5 mins auth_master_user_separator = * auth_mechanisms = plain login auth_username_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@#" default_client_limit = 3500 default_process_limit = 512 disable_plaintext_auth = no doveadm_port = 26 first_valid_uid = 90 listen = * lmtp_rcpt_check_quota = yes log_path = /dev/stderr login_greeting = Dovecot FRA.pvt ready mail_access_groups = dovecot mail_attribute_dict = file:%h/dovecot-metadata mail_gid = dovecot mail_location = mdbox:~/mdbox mail_log_prefix = "%s(%u %p): " mail_max_userip_connections = 200 mail_plugins = acl quota notify replication mail_log mail_lua notify push_notification push_notification_lua mail_uid = dovecot 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 ihave vnd.dovecot.debug mbox_min_index_size = 1000 B mbox_write_locks = fcntl mdbox_rotate_size = 50 M namespace inboxes { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Templates { auto = subscribe } mailbox Trash { auto = subscribe special_use = \Trash } prefix = INBOX/ separator = / subscriptions = no } namespace subs { hidden = yes list = no location = prefix = separator = / } namespace users { location = mdbox:%%h/mdbox:INDEXPVT=~/shared/%%u prefix = user/%%n/ separator = / subscriptions = no type = shared } passdb { args = /etc/dovecot/dovecot-dict-master-auth.conf driver = dict master = yes } passdb { args = /etc/dovecot/dovecot-dict-auth.conf driver = dict } plugin { acl = vfile acl_shared_dict = file:/var/dovecot/imap/%d/shared-mailboxes.db mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size push_lua_url = http://push-proxy/ push_notification_driver = lua:file=/etc/dovecot/dovecot-push.lua quota = dict:User quota::ns=INBOX/:file:%h/dovecot-quota quota_rule = *:storage=200GB sieve = ~/sieve/dovecot.sieve sieve_after = /var/dovecot/sieve/after.d/ sieve_before = /var/dovecot/sieve/before.d/ sieve_dir = ~/sieve sieve_extensions = +editheader +vacation-seconds sieve_redirect_envelope_from = orig_recipient sieve_user_log = ~/.sieve.log sieve_vacation_min_period = 1s } postmaster_address = admins@egroupware.org protocols = imap pop3 lmtp sieve service auth-worker { user = $default_internal_user } service auth { drop_priv_before_exec = no inet_listener { port = 113 } } service doveadm { inet_listener { port = 26 } vsz_limit = 640 M } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 5 service_count = 1 vsz_limit = 64 M } service imap { executable = imap process_limit = 2048 vsz_limit = 640 M } service lmtp { inet_listener lmtp { port = 24 } unix_listener lmtp { mode = 0666 } vsz_limit = 512 M } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } service pop3 { executable = pop3 } service postlogin { executable = script-login -d rawlog -b -t } ssl_cert = </etc/certs/mail.egroupware.org.pem ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it submission_host = fra-node-pool-internal.k8s.farm.egroupware.org:25 userdb { args = /etc/dovecot/dovecot-dict-auth.conf driver = dict } verbose_proctitle = yes protocol lda { mail_plugins = acl quota notify replication mail_log mail_lua notify push_notification push_notification_lua acl sieve quota } protocol imap { imap_metadata = yes mail_max_userip_connections = 200 mail_plugins = acl quota notify replication mail_log mail_lua notify push_notification push_notification_lua acl imap_acl quota imap_quota } protocol lmtp { mail_max_lock_timeout = 25 secs mail_plugins = acl quota notify replication mail_log mail_lua notify push_notification push_notification_lua acl sieve quota notify push_notification }
Am 28.01.26 um 09:07 schrieb Aki Tuomi via dovecot:
Hi!
To make migrating from Dovecot 2.3 to 2.4 a bit easier, we are now providing a tool that helps upgrade your existing configuration. The tool allows you to upload either a full dovecot.conf or selected ancillary configuration files from a 2.3 setup, and will attempt to convert them accordingly.
You can find the tool here: https://dovecot.org/upgrader/
We do not store any of the configurations processed by the tool, nor do we track who uses it. It's offered as-is, without any warranty or guarantee.
If you run into any issues, unexpected results, or have feedback about the tool, please let us know — it’s very much appreciated.
Please note that the tool can make mistakes, so we strongly recommend carefully reviewing and testing the output before using it in production.
There are currently no plans to release this tool as open source.
Regards, Aki Tuomi Open-Xchange oy
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
-- Ralf Becker EGroupware GmbH [www.egroupware.org] Handelsregister HRB Kaiserslautern 3587 Geschäftsführer Birgit und Ralf Becker Leibnizstr. 17, 67663 Kaiserslautern, Germany Telefon +49 631 31657-0