Esse é o comportamento esperado do postfix. O Virtual Alias será verificado primeiro antes de qualquer outro alias. Portanto, a lista de exemplo.com /opt/local/etc/postfix/virtual_alias
encaminhará seu e-mail antes de /opt/local/etc/postfix/virtual_mailbox
.
No seu caso, johndoe+catch_org
será recursivamente mapeado para virtual_alias
novamente, de modo que será correspondido com johndoe+catch_com
.
Se você configurar catchall para outra caixa de correio no mesmo domínio, poderá configurar catchall em virtual_mailbox_maps
. Adicione esta linha na parte inferior de /opt/local/etc/postfix/virtual_mailbox
@example.com example.com/johndoe
A desvantagem é que você não pode diferenciar o email entre example.com catchall ou example.org catchall. Para o caso dovecot, não posso confirmar se este esquema funcionará ou não.
Outra solução feia é colocar a conta não-catchall de example.com em /opt/local/etc/postfix/virtual_alias
. Por exemplo:
# account with mailbox
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
# for example.org domain catch all
[email protected] [email protected]
@example.org [email protected]
@example.com [email protected]