Hello
I am attempting to use an external IMAP server for authentication, on Dovecot 2.3.16 (7e2e900c1a), running on Ubuntu 22.04.
The external server requires usernames of the format: user@domain However, my local users, where the mail is actually drawn from, are of the format: user (passwd file driven).
I was able to log in with just "user", and have it both authenticate remotely, and access local mail, using:
passdb { driver = imap args = host=remotehost.com ssl=imaps port=993 user=%n@%d ssl_ca_dir=/etc/ssl/certs } userdb { driver = passwd args = blocking=no }
However, the remote SMTP server, which I will not be proxying, requires the same user@domain format for usernames. I would rather not ask users to use "user@domain" for SMTP, and "user" for IMAP. They should only have to use "user@domain" for login everywhere.
Is there a way to do this? The docs suggest so (AuthDatabase.PasswdFile.txt), but if so I must be botching it.
Things I have tried:
passdb { driver = imap args = host=remotehost.com ssl=imaps port=993 ssl_ca_dir=/etc/ssl/certs } userdb { driver = passwd args = blocking=no override_fields = username_format=%n }
I also tried:
override_fields = user=%n
Or, alternatively to any override_fields:
args = blocking=no username_format=%n
Lastly, I even tried this whole different approach:
userdb { driver = passwd-file args = blocking=no username_format=%n /etc/passwd }
The following is logged no matter which of those I try:
auth: imapc(remotehost.com:993): Connected to #.#.#.#:993 (local #.#.#.#:35088) auth: Error: passwd(user@domain,#.#.#.#,<...>): user not found from userdb imap(274049): Error: auth-master: login: request [...]: Login auth request failed: Authenticated user not found from userdb, auth lookup id=... (auth connected 10 msecs ago, request took 1 msecs, client-pid=274038 client-id=1) imap-login: Disconnected: Internal login failure (pid=274038 id=1): user=<user@domain>, method=PLAIN, rip=#.#.#.#, lip=#.#.#.#, mpid=274049, TLS, session=<...>
(The last attempt got a slightly varied log message, but quite similar: auth: Error: passwd-file(user@domain#.#.#.#,<...>): user not found from userdb )
Any help with this would be much appreciated.
Thanks!
Luke