On 24. Jan 2025, at 23.21, Bjoern Franke via dovecot <dovecot@dovecot.org> wrote:
Hi,
after a very long wait we are finally happy to release Dovecot v2.4.0!
while trying to upgrade to 2.4.0, I stumbled upon some issues:
The old config looked like this:
mail_location = mdbox:/data/mail/%u passdb { driver = passwd-file args = scheme=CRYPT username_format=%u /etc/dovecot/users }
userdb { driver = passwd-file args = username_format=%u /etc/dovecot/users default_fields = uid=vmail gid=vmail home=/data/mail/%u }
So I thought the "mapped" version should fit:
mail_driver = mdbox mail_path = /data/mail/%{user}
passdb passwd-file { auth_username_format = %{user} passwd_file_path = /etc/dovecot/users } userdb passwd-file { auth_username_format = %{user} passwd_file_path = /etc/dovecot/users fields { gid:default = vmail home:default = /data/mail/%{user} uid:default = vmail } }
Looks ok..
But lmtp doesn't find the user until I set auth_username_format = %{user | username}
Did you have auth_username_format set already in old config? The default also has | lower to make it lowercase, which you probably want to keep.
But then it tries to store the new mail in /data/mail/user@fqdn though "home:default = /data/mail/%{user}" is set.
I can't reproduce this. If I have auth_username_format = %{user | username} then home:default = /data/mail/%{user}" expands to username without the @domain. Does it also contain the @domain if you run "doveadm user user@fqdn"?
Besides that, sieve_script personal { active_path = /data/mail/%{user}/dovecot.sieve driver = file path = = /data/mail/%{user}/sieve
Is there an extra = here or just copy&paste mistake?
} throws "sieve_file_storage settings: Failed to parse configuration: Failed to expand sieve_script_path setting variables: Unknown variable 'user'"
What's the full error / which process is logging this? We have CI tests successfully using %{user} in sieve_script_path, so it can't be entirely broken.