I think, i had the same problem as you.
When dovecot runs lmtp, no user is logged in, so there is no user from which you can get groups. So i think, my solution is (not really sure, if this is right, it's a long time ago, i played around) this transport in exim for local delivery
dovecot_delivery:
debug_print = "T: dovecot_delivery_pipe for $local_part@$domain translates to GET_LOCAL_MAIL" driver = pipe
command = /usr/lib/dovecot/deliver -d "GET_LOCAL_MAIL" message_prefix = message_suffix = delivery_date_add envelope_to_add
return_path_add
log_output user = MAILUSER group = MAILUSERI have a really sophisticated setup with ldap... so GET_LOCAL_MAIL and MAILUSER are makros which get the email-adress and the mailuser for the receiving emailadress.
GET_LOCAL_MAIL could be $local_part@$domain MAILUSER is vmail in my setup, the user who owns all mailboxes
/usr/lib/dovecot/deliver is an alternative for the lmtp-delivery.
Unfortunately this way Postfix and Dovecot need to run on the same host.
I wonder, if this is a LMTP or Sieve issue. Maybe something can be done in sieve configuration to solve this?
Is there nobody from @Dovecot who could give some feedback :-) please :-)
Thanks
Christian
It could be possible to solve this with auth lua script that would allow returning the acl groups as a string, instead of using post-login script.
I fear I can not implement this on my system. I need pipes, which would be part of Lua posix, which depends on a bit32 backported module, which I do not have. I run Lua-5.1.5 here. Bit32 might be in Lua 5.2.
Is there some solution possible with the checkpassword backend? In the comments it seems that this backend is not necessarily usable with userdb.
Thanks in advance
Christian