Use relay diferente no postfix

3

Em nosso aplicativo, enviamos diferentes tipos de e-mails. Numa visão ampla, podemos generalizá-lo em duas categorias,

  1. e-mails que monitoram a integridade do aplicativo.
  2. e-mails que enviamos ao usuário final.

Existe alguma maneira (Definir algum cabeçalho / configurar algum parâmetro no postfix), de tal forma que, para o mesmo endereço do remetente, podemos usar um host de retransmissão diferente?

    
por Souman Mandal 07.05.2012 / 18:50

2 respostas

3

No postfix, você pode usar transport_maps para especificar diferentes hosts de retransmissão para diferentes domínios. No arquivo /etc/postfix/main.cf , você precisa incluir uma linha:

transport_maps = hash:/etc/postfix/transport

O arquivo de mapas de transporte tem a seguinte sintaxe:

# Syntax: .domain transport:relay_host
# Specifies specific domains for local delivery
mydomain1.com :
mydomain2.com :

# Specify domains that need to be relayed through 192.168.1.1
anotherdomain1.com relay:192.168.1.1
anotherdomain2.com relay:192.168.1.1

Não se esqueça de executar postmap transport para gerar o arquivo .db e, em seguida, recarregar / reiniciar o processo de postfix.

    
por 07.05.2012 / 22:08
6

Os mapas de transporte (na resposta de Khaled) podem alterar o retransmissão de mensagens com base no domínio.

Você também pode usar header_checks e body_checks para alterar os transportes (e executar outras ações) com base nos cabeçalhos correspondentes e no conteúdo encontrado no corpo do email. Estes podem ser baseados em regex ou hash. Meu exemplo abaixo é baseado em regex.

Em /etc/postfix/main.cf :

header_checks = regexp:/etc/postfix/header_checks

Em /etc/postfix/header_checks :

/^Subject: Host [a-z0-9]* is down!/ FILTER relay:192.168.1.1
/^Subject: [^ ]* has posted a new blog entry./ FILTER relay:192.168.1.2
/^Message-ID: <[0-9a-z]*@dbserver.local>/ FILTER relay:192.168.1.1
/^Message-ID: <[0-9a-z]*@mydomain.com>/ FILTER relay:192.168.1.2

O body_checks funciona da mesma maneira que o header_checks .

Você pode definir cabeçalhos arbitrários no seu aplicativo se quiser que algo exclusivo seja filtrado.

    
por 07.05.2012 / 23:51

Tags