Host de retransmissão baseado no registro MX de destino

4

Desejo configurar o Postfix para usar um retransmissor externo dependendo do nome do host de destino, ou seja:

  • Se o nome do host de destino for * .outlook.com, use o relé some_smtp.example.com
  • Se qualquer outro nome de host de destino, use retransmissão local

O que quero dizer com nome do host de destino é o nome do host obtido do registro MX. Se o domínio do destinatário tiver o registro MX microsoft-com.mail.protection.outlook.com , use um relay diferente

Eu sei que é possível especificar um relé dependendo do endereço do remetente (usando sender_dependent_relayhost_maps ), mas é impraticável na minha situação.

O objetivo é usar um retransmissor diferente para hosts de destino especiais: talvez o Mandrill ou outra instalação do Postfix.

    
por BinaryDeuce 29.01.2015 / 15:59

3 respostas

4

Você pode configurar um mapa de transporte para escolher seletivamente e-mails com @ outlook.com como endereço de destino e retransmiti-los via some_smtp.example.com, conforme mostrado abaixo.

Adicione a entrada abaixo em / etc / postfix / transport

outlook.com smtp:[some_smtp.example.com]

Adicione a entrada abaixo em /etc/postfix/main.cf

transport_maps = hash:/etc/postfix/transport

Reinicie o postfix após o seguinte comando

sudo postmap /etc/postfix/transport
    
por 29.01.2015 / 17:01
3

A resposta de Arul foi perfeita para o transporte com base no domínio do destinatário. No entanto, caso você se refira ao nome do host do registro MX, em vez do domínio do destinatário, a resposta não é aplicável.

Uma solução está usando check_recipient_mx_access . Snippet de documentos oficiais

check_recipient_mx_access type:table

Search the specified access(5) database for the MX hosts for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order to exclude specific hosts from blacklists. This feature is available in Postfix 2.1 and later.

Para o seu caso, basta colocar check_recipient_mx_access hash:/etc/postfix/finickydestination no lugar apropriado smtpd_*_restriction . Nesse arquivo coloque o nome do host

# /etc/postfix/finickydestination
.outlook.com smtp:[some_smtp.example.com]

Não se esqueça de postar o arquivo e executar o recarregamento do postfix.

Referência (s):

por 30.01.2015 / 04:16
0

Como @ user221326 (eu não tenho representante suficiente para comentar comigo mesmo) apontou @masegaloeh answer irá NÃO funcionar como check_recipient_mx_access espera uma tabela de acesso com um ACTION

Mais informações na página do manual

A ação que você deseja é FILTER , então algo como

.outlook.com FILTER smtp:[some_smtp.example.com]

Observe que, se você tiver vários FILTER , somente o último será disparado, então, verifique se isso vem depois de todo o resto.

Além disso, .outlook.com capturará apenas sub / super domínios (por exemplo, whatever.protection.outlook.com) se smtpd_access_maps for NOT em parent_domain_matches_subdomains , caso contrário você deseja outlook.com (não ponto principal)

Por fim, lembre-se de que essa ação se aplica à mensagem inteira assim que um destinatário MX corresponder ao domínio, o que não deve ser um problema, desde que seu destino definido não seja um MDA .

Felicidades

    
por 01.07.2018 / 01:28

Tags