Refer to https://dovecot.org/pipermail/dovecot/2015-March/099971.html https://wiki.dovecot.org/PasswordDatabase I tried to repeat the same thing. Set these passdb:
passdb { args = /myscript.sh ip=%r driver = checkpassword result_failure = return-fail result_success = continue } passdb { args = /etc/dovecot/dovecot-sql.conf.ext ( my working auth method ) driver = sql } Created executable /myscript.sh: #!/bin/sh exit 1 But I saw in the logs: dovecot[15111]: auth: Error: checkpassword(techd...@nestormedia.com,192.168.99.128,<Mos6jW94XNzAqGOA>): Child 15115 exited with status 1 dovecot[18016]: imap-login: Login: user=....[successful login] Why result_failure=return-fail from first passdb does not work?