Pergunta

Eu tenho um estoque sistema Debian Etch, usando Exim4. Os domínios são principalmente local, mas há alguns que são remotas. Para lidar com a entrega de e-mail remoto eu uso o arquivo de configuração do Debian:

  /etc/exim4/hubbed_hosts

Este arquivo lista os nomes de domínio, e máquinas de MX remotos para entregar. Por exemplo:

  example.org:  mx.example.com
  example.com:  mx2.example.com

Olhando para o arquivo de configuração do exim4 vejo que este utilizado da seguinte forma:

hubbed_hosts:
  debug_print = "R: hubbed_hosts for $domain"
  driver = manualroute
  domains = "${if exists{CONFDIR/hubbed_hosts}\
                   {partial-lsearch;CONFDIR/hubbed_hosts}\
              fail}"
  route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}
  transport = remote_smtp

O problema que tenho é que alguns dos anfitriões que estou usando necessidade de ter seus e-mails entregues a uma porta não-padrão. Infelizmente arquivo do Debian hubbed_hosts não funciona se eu tentar alterá-lo para incluir uma porta:

example.org: mx1.example.org:2525
example.com: 1.2.3.4.2525

É possível permitir dinamicamente a porta a ser especificada?

Foi útil?

Solução 2

Eu estava esperando por algo um pouco mais dinâmico - e esta solução funciona:

 port = ${if exists{/etc/exim4/ports.list}\
              {${lookup{$domain}lsearch{/etc/exim4/ports.list}\
              {$value}{25}}}{25}}

Em seguida, um simples arquivo pode ter uma lista de portas em uma base por domínio:

   example.org: 2525
   example.com: 26

Outras dicas

Este é realmente apoiada por padrão, sem quaisquer alterações à sua configuração do exim4.

Em hubbed_hosts, você separar anfitriões com dois pontos, e você especificar um número de porta com um duplo-e-vírgula. EX:

domain1: server1:server2::port:server3
domain2: server1::port
domain3: server1:server2

Para mais informações confira http: / /www.exim.org/exim-html-current/doc/html/spec_html/ch20.html#SECID122

Você provavelmente poderia usar o $ {extrato} operador permitem combinar os números das portas e nomes de host, como no exemplo da sua pergunta original.

Algo como (não testado):

route_data = ${extract{1}{:}{${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}}}

fazer um novo transporte que especifica a porta

remote_hub_2525:
driver = smtp
port = 2525

e, em seguida, criar um router para os domínios que necessitam de entrega não-padrão

non_standard_hub:
driver = manualroute
domains = example.org : example.com
transport = remote_hub_2525
no_more
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top