Ergänzend zum ersten Prism-Break-Artikel möchte ich hier eine weitere sehr praktische Ergänzung vorstellen: Das sender dependent SMTP-Relaying.
Was soll hier erreicht werden?
- eMail an einen lokalen Benutzer soll immer lokal ausgeliefert werden und nicht den Server verlassen.
- Falsch adressierte eMail an eine der externen Mailadressen eines lokalen Benutzers sollen ebenfalls lokal ausgeliefert werden und nicht den Server verlassen.
- eMail an einen externen Benutzer soll über den eMail-Account des Nutzers bei einem externen Provider versendet werden. Dabei soll natürlich die interne eMail-Adresse in die des externen eMail-Accounts umgeschrieben werden.
Der Vorteil der Lösung liegt auf der Hand. Die Nutzer müssen beim Versenden von eMail nicht mehr darauf achten, den richtigen SMTP-Server auszuwählen und die eMail wird automatisch richtig zugestellt und adressiert. Kommen wir zur Umsetzung:
Datei main.cf:
# RSP: outgoing mail redirections recipient_canonical_maps = hash:/etc/postfix/recipient_canonical # RSP: sender dependent authentication smtp_sender_dependent_authentication = yes smtp_sasl_auth_enable = yes smtp_tls_security_level = encrypt smtp_sasl_security_options = noanonymous, noplaintext smtp_sasl_tls_security_options = noanonymous smtp_connection_cache_on_demand = no # RSP: credentials and SMTP servers for relay-mail account smtp_sasl_password_maps = hash:/etc/postfix/sasl_password sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent # RSP: rewrite rules for sender addresses smtp_generic_maps = hash:/etc/postfix/generic
Datei recipient_canonical – Umleitung bekannter externer Adressen auf interne Postfächer:
known_external_user@mail-address.de user@internal.domain
Datei generic – Ersetzungstabelle interner Mailadressen für externe Zustellung:
user@internal.domain external@mail-address.de
Datei sasl_password – Credentials für externe Zustellung:
user@internal.domain ExternerBenutzername:ExternesPasswort
Datei sender_dependent – Zuordnung von internen Usernamen zu externen SMTP-Servern:
user@internal.domain smtp.externer-server.domain
Die erzeugten Dateien müssen vor der Benutzung via „postmap“-Kommando in *.db-Dateien umgewandelt werden.
Für den weit verbreiteten GMX-Mailserver muss mail.gmx.net verwendet werden. Der Server unterstützt leider nur Plaintext-Passwörter. Die smtp_sasl_security_options muss daher so aussehen:
smtp_sasl_security_options = noanonymous