Postfix - misturando virtual_aliases e virtual_mailboxes (catchall)

4

Estou executando o postfix (2.9.6) com o dovecot (2.2.5) e dois domínios:

  1. example.com como um virtual_mailbox_domain
  2. example.org como um virtual_alias_domain

Gostaria de definir duas regras diferentes para usuários desconhecidos, mas isso não funciona como esperado.

Usando a configuração abaixo, a regra pega-tudo para example.com aplica-se aos endereços example.com e example.org (ou seja, todos os e-mails desconhecidos são entregues na caixa de correio catch_com de johndoe, independentemente dos endereços example.org ou example.com) . Remover a regra @ example.com faz com que a regra @ example.org funcione adequadamente (correspondência entregue à caixa de correio catch_org do johndoe).

main.cf:

recipient_delimiter = +

virtual_mailbox_domains = example.com
virtual_mailbox_maps = hash:/opt/local/etc/postfix/virtual_mailbox

virtual_alias_domains = example.org
virtual_alias_maps = hash:/opt/local/etc/postfix/virtual_alias

master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/opt/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${user}@${nexthop} -m ${extension}

virtual_mailbox:

[email protected]         example.com/johndoe 

virtual_alias:

@example.org            [email protected]
@example.com            [email protected]

Adicionar a regra catchall à virtual_mailbox não funciona porque, como eu li em algum lugar usando o dovecot-lda, as regras catchall na virtual_mailbox são ignoradas.

    
por Stefan K. 03.12.2013 / 22:10

1 resposta

2

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]
    
por 27.12.2014 / 01:00

Tags