David Mehler wrote:
Thanks for your reply. So with the extending of the query to return a default quota rule, do you have an example of that by the way, does that mean I only have to put the overrided users in the quota table?
Assuming that quota values are in the dovecot_users table...
passdb with userdb prefetch and default quota of 1024M for quota=0 rows
The userdb_ prefix is for prefetch userdb entries in password_query
password_query = SELECT username AS user, 
password AS password, 
home AS userdb_home, 
uid AS userdb_uid, 
gid AS userdb_gid, 
CASE quota 
WHEN 0 
THEN '*:bytes=1024M:messages=0' 
ELSE 
CONCAT('*:bytes=', CAST(quota AS CHAR), 'M:messages=', CAST(quota_message AS CHAR)) 
END AS userdb_quota_rule 
FROM dovecot_users 
WHERE username='%u';
user_query with default quota of 1024M for quota=0 rows
user_query = SELECT username AS user, 
home AS home, 
uid AS uid, 
gid as gid, 
CASE quota 
WHEN 0 
THEN '*:bytes=1024M:messages=0' 
ELSE 
CONCAT('*:bytes=', CAST(quota AS CHAR), 'M:messages=', CAST(quota_message AS CHAR)) 
END AS quota_rule 
FROM dovecot_users 
WHERE username='%u';
Your user_query needs to return a row if the user exists, otherwise dovecot will assume that the user does not exist and the mail or user will be rejected.