Exim4 Smart Host Relay

1

Estou executando o Exim 4.71. Eu quero:

  1. Encaminhar todos os emails de A.com até mail.A.com
  2. Encaminhar todos os emails de [B-E] .com até mail.B.com
  3. Envie todos os outros e-mails diretamente.

Aqui está a configuração que eu tenho que não funciona como eu esperava:

domainlist a_domains = a.com
domainlist b_domains = b.com : c.com : d.com : e.com

begin routers

smart_route_a:
  driver = manualroute
  domains = +a_domains
  transport = remote_smtp
  route_list = +a_domains mail.a.com
  no_more

smart_route_b:
  driver = manualroute
  domains = +b_domains
  transport = remote_smtp
  route_list = +b_domains mail.mollenhour.com
  no_more

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

Quando eu envio um e-mail, por exemplo com mail( do PHP) ou Zend_Mail_Transport_Smtp definindo From: e Return-Path: como [email protected], o smart_route_a router não é usado, o dnslookup é usado no lugar. Desativar o dnslookup resulta em nenhum email sendo enviado.

Nos registros, parece que o e-mail enviado para [email protected] usa smart_route_a , mas o mesmo e-mail enviado de [email protected] para [email protected] e enviado usando dnslookup .

Como eu faço e-mail de [email protected] ser retransmitido via mail.a.com?

    
por ColinM 16.06.2010 / 05:30

1 resposta

2

Use uma condicional como

route_list = * "${if match{$header_from:}{\N.*\.a\.com$\N} {mail.a.com}}"

domains = apenas verifica o domínio de destino e não o domínio de origem.

    
por 14.07.2010 / 12:37