exim: Smarthost anhand der Absenderadresse auswählen

Ich möchte von meinen Systemen aus je nach der Absender-Adresse unterschiedliche Smarthosts ansteuern. Sprich: Wenn ich im MUA als vwegert@web.de schreibe, soll die Mail zur Auslieferung an smtp.web.de übergeben werden, wenn ich als Absender meine Manitu-Adresse verwende, soll der dortige Smarthost verwendet werden und so weiter. Exim kann das mit ein wenig Bastelei.

Erstmal lege ich mir eine Datei namens /etc/exim/smarthosts an, in der ich die "Routing-Regeln" definiere. Die Datei sieht so aus:

:     smarthost=smtp.web.de             auth_name=vwegert auth_pass=ganzgeheim
*@volker-wegert.de: smarthost=smtp.volker-wegert.de   auth_name=vwegert auth_pass=nochgeheimer

Der Inhalt sollte eigentlich selbsterklärend sein. Wie man sieht, ist die Angabe von Wildcards in der Empfängeradresse mglich. Da diese Datei sensitive Daten enthält, ist eine entsprechend restriktive Berechtigungsvergabe angebracht. Dann kommt die exim.conf dran. Aus der Router-Konfiguration wird der domain_literal-Router auskommentiert (wenn das noch nicht passiert ist) und durch folgenden Eintrag ersetzt:

smarthost_auto:
   condition = ${extract{smarthost}{${lookup{$sender_address}wildlsearch{/etc/exim/smarthosts}{$value}fail}}}
   driver = manualroute
   domains = ! +local_domains
   route_list = "* ${extract{smarthost}{${lookup{$sender_address}wildlsearch{/etc/exim/smarthosts}{$value}fail}}}"
   transport = remote_smtp

Achtung: Die Reihenfolge der Router ist wichtig!

Das liest sich am besten als "Wenn in der Datei /etc/exim/smarthosts eine Zeile gefunden werden kann, deren Schlüssel als Wildcard auf die Absenderadresse passt und in der ein Smarthost eingetragen ist, dann lege manuell als nächsten MTA auf der Route ebendiesen Smarthost fest und gib die Nachricht per SMTP weiter."
Das reicht mir ganz knapp noch nicht, denn schließlich will ich mich auf der Gegenseite ja auch noch mit Passwort melden. Dazu muß in den Transport remote_smtp noch die Zeile

  hosts_try_auth = smtp.volker-wegert.de:smtp.web.de

eingebaut werden. Außerdem gehört folgende Konfiguration in die authenticators-Sektion:

cram_md5:
     driver = cram_md5
     public_name = CRAM-MD5
     client_name = "${extract{auth_name}{${lookup{$sender_address}wildlsearch{/etc/exim/smarthosts}{$value}fail}}}"
     client_secret = "${extract{auth_pass}{${lookup{$sender_address}wildlsearch{/etc/exim/smarthosts}{$value}fail}}}"

Und das sollte es eigentlich auch schon gewesen sein...

Trackback URL for "exim: Smarthost anhand der Absenderadresse auswählen"

http://www.volker-wegert.de/de/trackback/34

Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Zulässige HTML-Tags: <a> <b> <i> <h1> <h2> <h3> <em> <img> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <th> <tt> <pre>
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Sie dürfen andere Beitrage mit [quote] Tags Zitieren.
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • Zeilen und Absätze werden automatisch erzeugt.
  • Images can be added to this post.

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage dient dazu festzustellen, ob Sie ein Mensch sind und um automatisierte SPAM-Beiträge zu verhindern.