
Ich verwende Exim 4.71. Ich möchte:
- Alle E-Mails weiterleitenausA.com über mail.A.com
- Alle E-Mails weiterleitenaus[BE].com über mail.B.com
- 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_Smtp
sowohl From: als auch Return-Path: als[email geschützt], der smart_route_a
Router 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.