I had ISPConfig 3.0.4 installed and everything working except that all incoming email was rejected with:
Diagnostic-Code: x-unix; user unknown
I eventually tracked this down to authentication in Dovecot delivery. The message was being accepted by Postfix, passed through Amavis, back into Postfix and thence to Dovecot.
I then discovered that there had been a problem with the "user_query = " command in /etc/dovecot/dovecot-sql.conf, so I changed it in accordance with
And incoming mails worked! But now email client logging in (which was working) doesn't
It appears that the same SQL statement is used to retrieve the email address during delivery and the account login username at POP3/IMAP login time. If I change the WHERE clause from:
WHERE login = '%u' AND disable%Ls = 'n'
WHERE email = '%u' AND disable%Ls = 'n'
then the delivery works but login doesn't, and vice-versa.
I should add that ISPConfig is set to allow custom login names.
I *think* a solution is to user the password query to get both username and password (by prepending "userdb_" to the appropriate fields, as per Dovecot docs) and then the user query is only used for delivery. Or, I can change the dovecot config file to use two separate sql config files.