Sender-Based-Routing ausgehender Mail unter postfix mit esmtp
Einige von uns nutzen ja postfix als MTA und haben damit vermutlich das
selbe Problem wie ich: postfix bietet in der Version, die Debian Sarge
beiliegt, lediglich die Möglichkeit, *einen* Mailserver für ausgehende
Mails anzugeben.
Wenn man aber - wie ich - mehrere E-Mail-Adressen besitzt und aktiv
nutzt, stößt man damit schnell auf Probleme: GMX nimmt nur Mails mit
GMX-Absendern an (in meinem Fall z.B. "user@gmx.de"),
würde ich dagegen GMX-Mails über 1&1 (worüber z.Zt. der Mailverkehr von
"user@1und1.com" abgewickelt wird) versenden, bestünde die
Möglichkeit, daß beim Empfänger SPAM-Filter auf den "falschen"
Mailserver ansprechen.
Kurz und gut, es musste eine Lösung her, mit der ich abhängig von der
verwendeten Absenderadresse unterschiedliche SMTP-Server nutzen kann.
Fündig geworden bin ich in einem Usenetposting von Frank Winkler in
de.comm.software.mailserver (Msg-ID
<43820371$0$27905$9b4e6d93@newsread4.arcor-online.net>), auf den sich
das folgende HowTo stützt.
1. esmtp installieren und konfigurieren
Ausgangspunkt ist ein bereits laufendes Postfix-System, das nur
erweitert werden soll. Dreh- und Angelpunkt ist das Paket "esmtp", das
wir über
apt-get install esmtp
installieren.
Ich habe dem o.g. Posting folgend ebenfalls einen System-User "esmtp"
angelegt
adduser --system esmtp
es lässt sich aber vermutlich auch ohne dies auskommen.
Die Konfiguration von esmtp ist denkbar einfach. Dazu legt man eine
Datei an (bei mir "/home/esmtp/.estmprc", die z.B. folgenden Inhalt hat:
mda="/usr/bin/procmail -d %T"
identity = user@gmx.de
hostname=mail.gmx.net
username="GEHEIM"
password="GEHEIM"
starttls=enabled
preconnect="echo Auslieferung user@gmx.de | /usr/bin/logger -p mail.notice"
identity = user@1und1.com
hostname=smtp.1und1.com
username="AUCHGEHEIM"
password="AUCHGEHEIM"
starttls=enabled
preconnect="echo Auslieferung user@1und1.com | /usr/bin/logger -p mail.notice"
Die beiden Blöcke zur "Zustelldefinition" sind gleich aufgebaut:
- "identity" gibt an, welche Absenderadresse behandelt werden soll.
- "hostname" ist der Name des externen SMTP-Servers
- "username" und "password" dürften selbsterklärend sein und müssen
natürlich passend gesetzt werden.
- "starttls" bewirkt den Aufbau einer verschlüsselten Verbindung
- Die "preconnect"-Zeile bewirkt ein Logging in /var/log/mail.log.
An dieser Stelle eine Warnung: Wird clientseitig eine Absenderadresse verwendet, die nicht explizit aufgeführt ist, wird die erste Identity als default verwendet. Verweigert dieser SMTP-Server die Annahme, ist die Mail ohne weitere Fehlermeldung für den User verloren. Man sollte als darauf achten, entweder alle möglichen Absenderadressen aufzuführen oder als erste Identität einen Server verwenden, der als Fallback fungieren kann.
Für weitere Konfigurationsmöglichkeiten sei auf die esmtp-Homepage
http://esmtp.sourceforge.net/ verwiesen.
2. postfix anpassen
Jetzt wird postfix mit esmtp bekanntgemacht. In der Datei
/etc/postfix/main.cf wird die Zeile
relay_host = IRGENDWAS
auskommentiert und dafür die Zeile
default_transport = esmtp:
eingefügt. Dieser Transport muß noch in der Datei /etc/postfix/master.cf
definiert werden, indem man die folgenden Zeilen hinzufügt (idealerweise
unter den Block ähnlich lautender Zeilen):
esmtp unix - n n - - pipe
flags=q. user=esmtp argv=/usr/bin/esmtp -v -C /home/esmtp/.esmtprc -f $sender $recipient
Falls man weiter oben keinen eigenen User angelegt hat bzw. die
Konfigurationsdatei an einer anderen Stelle deponiert hat, sollte man
dies hier natürlich entsprechend berücksichtigen.
Nachdem postfix nun neu gestartet wurde, ist die Sache bereits erledigt
und funktionsfähig.
3. Alternativen und Ausblick
Postfix bietet bereits jetzt in der aktuellen Version - die aber (noch)
nicht in Debian Sarge enthalten ist - die Möglichkeit zum "Sender based
routing". Damit wäre esmtp überflüssig und das Versenden könnte von
postfix direkt vorgenommen werden.
Eine andere Alternative ist exim, das bereits jetzt (auch in der
Sarge-Version) diese Option bietet.
Anleitung von Sebastian Suchanek, eingepflegt in die Webseite von Andreas Kraus (lug@ak1301.de)
|