On 2016-08-22 13:21, Peter Mogensen wrote:
===================================================================
....
protocol lda {
#  passdb {
#    driver = static
#  }

  userdb {
    args = /etc/dovecot/dovecot-dict-auth.conf.ext
    driver = dict
    result_success = continue-ok
    result_failure = return-fail
  }
  userdb {
    driver = static
    args = uid=vmail gid=vmail home=/srv/vmail/%u mail=maildir:~
  }
}
==================================================================

I realized that the passdb is needed when using the static driver to find out which users actually exist. And that you have to use args=allow_all_users=yes.

But it seems the logic to detect that a passdb is needed doesn't discover that I have a dict userdb before the static one ?!?!

Anyway ... I think I got what I wanted by not trying to change the user in a userdb, but doing it in a passdb:

======================================================================
protocol !lmtp {
  passdb {
    driver = passwd-file
    args = /etc/dovecot/accounts
  }
}
protocol lmtp {
  passdb {
    args = /etc/dovecot/dovecot-dict-auth.conf.ext
    driver = dict
  }
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/srv/imip/vmail mail=maildir:~
}

======================================================================

Where the dict passdb returns something like:
O{"nopassword":"yes", "user": "static-user"}


This leaves me with 1 question though:
Shouldn't you be able to do this with a userdb rewriting "user" on delivery (LMTP RCPT) and no passdb?


/Peter

Reply via email to