Debian Exim4 und mehrere Smarthosts-Howto
Ich habe nun mein Beispiel nochmal kräftig überarbeitet.
Leider ging es doch nicht so nahe an der Standard-Konfig, wie
ich mir es vorgestellt habe. Die verschiedenen Provider benötigen
halt doch ein komplettes Ensemble aus Router, Transport, Auth.
Dafür werden nun alle in der letzten Mail noch offen Punkte bearbeitet.
Hauptkonfiguration ist die Datei passwd.user, wo der Smarthost, der Port
und die Zugangsdaten eingetragen werden.
Die Konfig habe ich nun mit gmx, web.de, t-online und gmail getestet.
Wichtig ist dass nicht der Port 465 zum Senden verwendet wird, da
in Debian Exim nur STARTTLS funktioniert. (siehe zless
/usr/share/doc/exim4-config/README.Debian.gz section 2.2: TLS on connect
is not natively supported.)
Installationsanleitung:
wget http://www.m-taube.de/exim.tgz
tar xvfj exim.tgz
--- passwd.user anpassen ---
nun ./e_install.sh ausführen.
Dieses File installiert automatisiert die Konfiguration. Es ist nur
ein sehr einfaches Script, wer die Kontrolle behalten will kann
einfach die Zeilen einzeln selbst auf der Kommandozeile eingeben.
Während der Installation wird dpkg-reconfigure exim4-config aufgerufen,
bitte als Konfigurationstyp Internet-Site oder Smarthost eingeben und
"Exim auf kleine Dateien aufteilen".
Mittels
./mailtest.pl beispiel@gmx.de beispiel@web.de beispiel@t-online.de
kann dann die Konfiguration getestet werden. Das Script verschickt
jeweils zwischen diesen Mailadressen Mails, und zwar einmal per smtp auf
localhost und einmal direkt von der Kommandozeile. Mittels -s oder -c
als Option könnte der Versandtyp vorgewählt werden.
Zu den einzelnen Files:
### passwd.user ###
In dieser Datei wird die Zuordnung beschrieben, über welchen Smarthost
eine Mail mit einem bestimmten Header-From: geroutet wird.
In localuser bitte einen lokalen Benutzer eintragen, an den
Mail im Fehlerfall geroutet werden kann. Bei Port entweder 25
oder 587 eintragen, da mit dem Debian-Exim nur STARTTLS funktioniert und
Port 465 ausscheidet.
Diese Datei steht im CONFDIR (meist /etc/exim4) und muss angepasst
werden, bevor das Paket funktioniert.
### exim4-config_files.5 ###
Ein Ersatz für die manpage exim4-config_files, in dem die neue Datei
passwd.user beschrieben wird.
### main/04_exim-config_smarthost_multi ###
In dieser Datei werden die Variablen gesetzt.
Um die Konfiguration zu aktivieren:
SMARTHOST_MULTI = yes
Falls es Probleme mit einigen Hosts gibt, die keine parallele
Verbindungen akzeptieren:
SERIALIZE_HOSTS = *.t-online.de
Da es aber trotzdem noch passieren kann, das Mails abgelehnt und
in der Queue landen, rate ich dringend QUEUEINTERVAL in
/etc/default/exim4 auf einen kleineren Wert zu setzen.
disable_ipv6 = true
ist nur für meine Konfiguration gesetzt, falls ipv6 auf dem Rechner
funktioniert sollte man das auskommentieren.
### router/170_exim4-config_smarthost_multi ###
Der Router. Mails werden nicht über die konfigurierten Smarthosts
geroutet, wenn das Ziel lokal ist oder der Absender nicht in der
passwd.user existiert. Dann wird mit den Standard-Routern der
Debian-Exim-Installation weitergemacht.
Wenn der passende Sender gefunden wird, wird der Smarthost gesetzt und
für den Fehlerfall errors_to auf den Lokalen Nutzer gesetzt. Falls der
Smarthost die Mail nicht annimmt besteht wahrscheinlich kaum
Möglichkeit, die Mail Bounce-Mail extern loszuwerden, deshalb sollte
hier ein lokaler Nutzer gesetzt werden.
### ./transport/31_exim4-config_smarthost_multi ###
Die Mail geht dann zu diesem Transport. Hier wird der passende
envelope-from gesetzt (return_path = $header_From:) Der Port kann 465
nicht verwendet werden, siehe oben.
### auth/30_exim4-config_examples.rul ###
Es wird ein .rul File verwendet, welches Vorrang vor der originale Datei
bei update-exim4.conf hat.
mfg
Matthias
Reply to: