Dovecot 2.3.16, Ubuntu 22.04.

I'm trying to get a list of all dovecot users, on a simple test setup on my local network (which "works", in that I can get IMAP mails from dovecot):

passdb {
  driver = passwd-file
  args = /var/mail/vhosts/%d/shadow
}
userdb {
  driver = passwd-file
  args = /var/mail/vhosts/%d/passwd
}

The command 'doveadm user -u f...@example.com' correctly shows that user. However, any attempt to wildcard the user fails:

# doveadm user -u *@example.com
Error: auth-master: userdb list: User listing returned failure
Fatal: user listing failed

The log file shows

Error: conn unix:auth-worker (pid=13471,uid=129): auth-worker<1>: passwd-file(*@example.com): passwd-file: User iteration isn't currently supported with %variable paths

Any ideas? And, if I can get this to work, is this method any better than just reading /var/mail/vhosts/example.com/passwd and extracting the first field to get the user name? Or just finding all the maildir directories in /var/mail/vhosts/example.com? Thanks.

If you're interested, I'm doing this so that I can automate postfix setup (by mapping new addresses to known dovecot users in the postfix virtual mailbox file). The vmailbox file might look like:

# 'user1' is a known dovecot user
f...@example.com example.com/user1

Reply via email to