Postfix virtual domains: como aceitar todos os subdomínios, exceto dois?

3

Supondo que meu servidor Postfix atenda ao domínio , desejo que ele aceite mensagens para todos os subdomínios de example.com, exceto mail.example.com e in.example.com .

Primeiro, tentei usar uma expressão regular que exclui esses dois subdomínios:

(?(?!mail|in).+\.example.com)

Mas não funcionou. Eu não tinha certeza se o problema é com a expressão regular ou se o mecanismo de expressões regulares do Postfix não suporta condicionais, então eu decidi tentar usar condicionais do arquivo de tabela. Neste ponto, minha mesa ficou assim:

/ etc / postfix / virtual_domains:

if !/(in|mail)\.example\.com/
/.+\.example\.com/ OK
endif

/etc/postfix/main.cf:

virtual_alias_domains = regexp:/etc/postfix/virtual_domains

Mas também não funcionou. O que estou fazendo errado?

    
por arikfr 04.10.2011 / 19:12

2 respostas

5

Altere isso em main.cf :

virtual_alias_domains = !/etc/postfix/not_these_domains.txt regexp:/etc/postfix/virtual_domains

/etc/postfix/not_these_domains.txt :

in.example.com  mail.example.com

E mantenha /etc/postfix/virtual_domains simples:

/.+@.+\.example\.com/    OK

Mas note : isso só funciona para o Postfix > 2.4

    
por 04.10.2011 / 19:44
4

Se o seu Postfix for criado com suporte a PCRE, tente usar o look-behind negativo:

(?<!(mail|in)).+\.example\.com
    
por 04.10.2011 / 19:30