Exim4 Smart Host Relay

Exim4 Smart Host Relay

Ich verwende Exim 4.71. Ich möchte:

  1. Alle E-Mails weiterleitenausA.com über mail.A.com
  2. Alle E-Mails weiterleitenaus[BE].com über mail.B.com
  3. Senden Sie alle anderen E-Mails direkt.

Hier ist meine Konfiguration, die nicht wie erhofft funktioniert:

Domänenliste a_domains = a.com
Domänenliste b_domains = b.com : c.com : d.com : e.com

Router starten

smart_route_a:
  Treiber = manuelle Route
  Domänen = +a_Domänen
  transport = remote_smtp
  route_list = +a_domains mail.a.com
  nicht mehr

smart_route_b:
  Treiber = manuelle Route
  Domänen = +b_Domänen
  transport = remote_smtp
  route_list = +b_domains mail.mollenhour.com
  nicht mehr

DNS-Lookup:
  Treiber = DNS-Lookup
  Domänen = ! +lokale_Domänen
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  nicht mehr

Wenn ich eine E-Mail versende, zB mit PHP's mail() oder Zend_Mail_Transport_Smtpsowohl From: als auch Return-Path: als[email geschützt], der smart_route_aRouter wird nicht verwendet, stattdessen wird DNS-Lookup verwendet. Das Deaktivieren von DNS-Lookup führt dazu, dass keine E-Mails gesendet werden.

Aus den Protokollen geht hervor, dass die E-Mail gesendet wurdeZu [email geschützt]verwendet smart_route_a, aber die gleiche E-Mail gesendet von[email geschützt]Zu[email geschützt]wird per gesendet dnslookup.

Wie erstelle ich eine E-Mailaus [email geschützt]über mail.a.com weitergeleitet werden?

Antwort1

Verwenden Sie einen Konditional wie

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

domains = überprüft nur die Zieldomäne, nicht die Quelldomäne.

verwandte Informationen