Ignore minha primeira resposta (abaixo) - funciona, mas provavelmente não é uma boa solução.
Existe alguma chance de você receber receive_override_options = no_address_mappings no seu postfix main.cf ou master.cf.
Eu tinha como -o receive_override_options = no_address_mappings tanto para o SMTP como para a porta de envio. (Eu ainda tenho isso para o DSpam).
Se você removê-lo, o Postfix informará à Dovecot de qual usuário deve entregar o email:
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}
/etc/dovecot/dovecot-sql.conf:
user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox, domain WHERE username = '%u' AND mailbox.active = '1' AND domain.domain = '%d' AND domain.active = '1'
Dessa forma, o Dovecot pode saber quais contas realmente existem (e ter diretórios de email) e o Postfix informa ao Dovecot para qual conta um endereço é mapeado.
Você tentou allow_all_users = yes em /etc/dovecot/conf.d/auth-sql.conf.ext
userdb {
driver = static
args = uid=vmail gid=vmail allow_all_users=yes home=/var/mail/%d/%n
}
Pode ser necessário vincular os usuários / domínios com alias
cd /var/mail
ln -s domain.tld alias_domain.tld
or
ln -s domain.tld/user domain2.tld/user_alias
que não o torna tão elegante quanto uma consulta SQL userdb em funcionamento para o dovecot seria ...
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}
O melhor que eu tenho até agora é:
user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox, domain WHERE local_part = '%u' AND domain.domain = '%d';
(assumindo 5000: 5000 = vmail: vmail)
que faz com que pelo menos as user_aliases funcionem (não consigo fazer com que os aliases de usuários trabalhem em domínios de alias)
O Postbox rejeitará usuários virtuais desconhecidos corretamente devido às muitas Consultas SQL fornecidas pelo Postfixadmin, mas a consulta SQL do userdb fornecida para o dovecot não possui as tabelas alias e alias_domain e eu não sou bom o suficiente no SQL para corrigir isso.