Pesquisa MX do postfix para entrega em vez de entrega local para domínios específicos

2

Antes de esclarecer minha dúvida, preciso explicar a configuração atual.

Temos 1 servidor Postfix que pode receber e-mails e armazená-los em uma caixa de correio. Alguns de nossos clientes têm seu próprio servidor Exchange, mas ainda fornecemos uma caixa POP3 em nosso servidor Postfix. O DNS do seu domínio está configurado para primeiro tentar entregar mensagens para o servidor do Exchange, se esse não puder ser alcançado, entregue-o ao nosso servidor Postfix. Se o e-mail estiver sendo entregue no servidor Postfix, o e-mail é armazenado em uma conta POP3. Quando o servidor Exchange está novamente online, ele usa o localizador POP para ler o conteúdo da caixa de correio POP3, baixar os emails e distribuí-los entre as caixas de correio no servidor Exchange.

Isso tudo funciona muito bem. Porque durante uma interrupção, os clientes ainda podem acessar o nosso webmail e ler emails importantes. Este é um recurso que gostaríamos de manter.

No entanto, o problema é que a maioria dos clientes também hospeda seu site no mesmo servidor que executa o Postfix. Quando o software em execução nesse servidor tenta entregar mensagens para um dos endereços de e-mail dos clientes, ele as entrega localmente. O que queremos é que o Postfix use a pesquisa do MX para ver em qual servidor o email deve ser entregue.

Há muito tempo que venho tentando fazer isso. Eu tenho o livro Postfix e leio através dele. Consultou muitos exemplos de configuração e outros recursos na internet.

Até agora eu tenho tentado usar transport_maps = hash:/etc/postfix/transport e listar os domínios específicos lá, executar postmap para gerar novamente as tabelas de pesquisa e fazer um postfix reload . Tudo o que eu tento fazer mail está sendo entregue localmente.

Para adicionar mais contexto, usamos o Courier e listamos todos os domínios em virtual_alias_maps = hash:/etc/postfix/virtual .

Qualquer ajuda seria muito apreciada.

/ etc / postfix / transport

example.com    smtp

/ etc / postfix / virtual

example.com    postmaster
@example.com   someuseraccount
    
por Htbaa 16.06.2011 / 13:21

2 respostas

2

A razão pela qual você está achando difícil fazer isso é que é essencialmente impossível, porque contradiz o modelo MTS empregado pelo Postfix. Caixas de correio são locais ou remotas; eles não podem ser ambos. A máquina local <<> é a destino final para o correio ou não é. Classes de endereço de domínio local e virtual são "destino final", domínio remoto ("relé "/" padrão ") classes de endereço não são. O destino final de uma única caixa de correio não pode ser tanto uma maildir na máquina local ou um transporte remoto para outra máquina. Tem que ser um ou outro. Um domínio é local / hospedado e, nesse caso, o correio das caixas de correio nesse domínio é entregue ao maildir local para ser selecionado pelo POP3 ou por um remoto, caso em que o correio das caixas de correio nesse domínio é transportado para outro máquina e não entregue localmente.

Sua única opção real é executar dois MTSs separados - duas instâncias distintas de Postfix . Um deles fornece o serviço SMTP Relay à Internet como um todo e é configurado com os domínios em questão como domínios virtuais, hospedados localmente, com todos os e-mails entregues ao maildir para recuperação posterior via POP3. O outro fornece sendmail , postdrop e o serviço de Envio de SMTP local e é configurado com os domínios em questão como domínios de retransmissão, hospedados remotamente, cujo email deve ser transportado para o servidor Exchange.

Précis: Ter dois "caminhos de papel" distintos e contraditórios para o correio requer duas instâncias do MTS.

    
por 16.06.2011 / 14:28
1

Por favor, mostre o conteúdo do seu arquivo / etc / postfix / transport. É impossível dizer se esse arquivo está correto ou não.

Além disso, por favor, esclareça ... Você quer que o postfix tente a entrega MX para esses domínios, e somente se falhar, entregue localmente?

Obrigado pela informação adicional.

O que você quer fazer é muito complicado e pode nem ser diretamente possível. Eu acho que a maneira mais fácil de conseguir isso é executar duas instâncias do postfix. Veja aqui link para informações detalhadas.

Você pode configurar uma instância do postfix para aceitar e-mails do mundo e entregar em caixas de correio locais para recuperação de POP3, etc.

A outra instância aceitará e-mails de processos locais e, em seguida, tentará a entrega por meio do MX - possivelmente até mesmo para a primeira instância do postfix.

Na segunda instância, você desabilitaria o serviço smtp em master.cf, para que as duas instâncias não estivessem tentando escutar a porta 25. Para todos os detalhes, leia o link acima.

Espero que isso ajude!

    
por 16.06.2011 / 13:40

Tags