I was getting these errors below and after fixing it delivery errors were introduced
dovecot/error_log ============== dovecot: Jul 11 06:19:28 Error: auth-worker(default): sql([EMAIL PROTECTED]): User query failed: Table 'postfix.users' doesn't exist deliver([EMAIL PROTECTED]): Jul 11 06:19:28 Error: BUG: Unexpected input from auth master: FAIL 1 dovecot: Jul 11 06:21:41 Error: auth-worker(default): sql([EMAIL PROTECTED],127.0.0.1): User query failed: Table 'postfix.users' doesn't exist ============== It turns out that using prefetch with dovecot lda required a user_query in dovecot/sql.conf I fixed it by adding this query to dovecot/sql.conf user_query = SELECT concat('/var/vmail/', maildir) as home, 601 as uid, 12 as gid FROM mailbox WHERE username = '%u' AND active = '1' This resulted in a new mailbox /var/vmail/domain.com/[EMAIL PROTECTED] being created when although /var/vmail/domain.com/user already exists and is what the query returns It seems that prior to that when the query was failing the mail was properly delivered somehow by dovecot, but fixing it created a new problem. It appears that the mail_location = maildir:/var/vmail/%d/%u in dovecot.conf could be related as %u is [EMAIL PROTECTED] Is there a fix for this? Does the deliver line in postfix/master.cf need to be adjusted in some way I will probably have to disable the user_query and restart for the time being dovecot version - 1.0rc26 Here is dovecot.conf =============== ssl_cert_file = /etc/pki/dovecot/certs/abc.domain.net.crt ssl_key_file = /etc/pki/dovecot/private/abc.domain.net.key ssl_ca_file = /etc/pki/dovecot/certs/ca-bundle.crt mail_location = maildir:/var/vmail/%d/%u mail_extra_groups = mail first_valid_uid = 601 last_valid_uid = 601 maildir_copy_with_hardlinks = yes protocol imap { mail_plugins = quota imap_quota imap_client_workarounds = outlook-idle delay-newmail } protocol pop3 { mail_plugins = quota pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { postmaster_address = [EMAIL PROTECTED] mail_plugins = quota log_path = /var/log/dovecot/deliver.log info_log_path = /var/log/dovecot/deliver.log } auth default { mechanisms = plain passdb sql { args = /etc/dovecot/sql.conf } userdb prefetch { } userdb sql { args = /etc/dovecot/sql.conf } user = nobody socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 user = vmail group = mail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = mail } } } dict { } plugin { quota = maildir:storage=10240:messages=1000 acl = vfile:/etc/dovecot/acls trash = /etc/dovecot/trash.conf } dovecot/sql.conf ============== default_pass_scheme = PLAIN-MD5 driver = mysql connect = host=localhost dbname=postfix user=dovecot password=password password_query = SELECT username as user, password, concat('/var/vmail/', maildir) as userdb_home, concat('maildir:/var/vmail/', maildir) as userdb_mail, 601 as userdb_uid, 12 as userdb_gid, concat('dirsize:storage=', cast(quota as char)) AS userdb_quota FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT concat('/var/vmail/', maildir) as home, 601 as uid, 12 as gid FROM mailbox WHERE username = '%u' AND active = '1' dovecot line in postfix/master.cf ======================= # Dovecot LDA dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/local/libexec/dovecot/deliver -d ${recipient} - Frank