Faça o Exim entregar o correio local externamente

2

Temos uma configuração de correspondência incomum - Google Apps / Gmail na frente, com o Exim em execução no nosso servidor da web. O e-mail de qualquer conta que não existe no Google Apps é encaminhado para o Exim. Ambos usam o mesmo domínio.

O problema é que todas as mensagens enviadas das contas do Exim (ou do nosso aplicativo PHP) são entregues apenas localmente, não enviadas pelo Gmail.

Para ilustrar melhor, veja este gráfico de alta qualidade:

[Google Apps] (Tom, Dick, Harry)

   |
   v
[Exim] (Jane, Mary, Sue)

Os e-mails enviados para Jane são encaminhados para o Exim pelo Google. Os e-mails enviados para Tom são simplesmente entregues pelo Google. Esta é a parte que funciona - o problema é que Jane não pode mandar um email para Tom porque, no que diz respeito ao Exim, ele roda o programa inteiro.

Estou lendo sobre a configuração de um SmartHost no Exim, mas isso requer autenticação - e, de forma crítica, as contas no Exim não correspondem às do Google Apps.

Como posso configurar o Exim para entregar correio local por meio de rotas externas?

    
por Sudowned 08.01.2014 / 23:07

1 resposta

4

Com base na resposta que você mencionou nos comentários da pergunta ( Configurar o servidor para enviar e-mails que não podem ser roteados para outro servidor de e-mail ), reescrevi a parte lógica para usar todo o endereço de e-mail, não apenas a parte local. O seguinte parece funcionar nos meus testes.

1) Coloque example.com no seu + local_domains.

2) Adicione o roteador recomendado por ele. (Deve haver outro roteador seguindo este que aceita + local_domains e usuários que possuam caixas de correio locais válidas):

not_local:
  driver = manualroute
  domains = +local_domains
  transport = remote_smtp
  condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/forward_to_google}}
  # Use whatever MX is correct for your domain below
  route_list = +local_domains s7a1.psmtp.com

3) Crie /etc/exim/forward_to_google e coloque:

[email protected]: yes
# Not required if this is a local account, but
# shows how flexible this approach can be
[email protected]: no

4) Você pode testar com a opção de teste de endereço -bt do exim (minha configuração não tem esse segundo roteador para os usuários locais válidos, mas o seu deve ser feito para que o primeiro usuário mostre uma entrega local):

$ exim -bt [email protected]
[email protected] is undeliverable: Unrouteable address
$ exim -bt [email protected] 
[email protected]
  router = not_local, transport = remote_smtp
  host s7a1.psmtp.com [64.18.6.10] 
    
por 10.01.2014 / 15:10