PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Exim4 smarthost mit LDAP-Anbindung funktioniert nicht



Al Bundy
23.11.07, 20:05
Hallo!

Ich bin gerade dabei mir einen kleinen Mailserver aufzusetzen.
Dieser soll Mails von verschiedenen Konten bei verschiedenen Anbietern abholen und in Maildirs von virtuellen Usern verteilen. Dort werden sie dann über IMAP zur Verfügung gestellt. Die Informationen hierfür werden über LDAP verwaltet, damit ich mir die spätere Wartung einfacher mache.

Ich habe hierzu ein LDAP-Schema erstellt, mit dem ich die Benutzerkonten verwalten kann.
Das würde dann für einen Benutzer in etwa so aussehen:


dn: uid=user1#gmx.net,ou=users,dc=intra,dc=lan
uid: user1#gmx.net
objectClass: uidObject
objectClass: simpleSecurityObject
objectClass: ExtMail
userPassword: geheimesBenutzerpasswort
ExtMailAddress: user1@gmx.net
ExtMailUserName: user1@gmx.net
ExtMailUserPasswd: geheimesMailpasswort
ExtMailReceiveServer: pop.gmx.de
ExtMailReceiveServerType: pop3
ExtMailReceiveServerOptions: keep
ExtMailSendServer: mail.gmx.de

Diese Konten werden durch ein Bash-Script abgerufen und auf die Postfächer verteilt, das funktioniert soweit schon. Der Zugriff auf die Postfächer mit IMAP funktioniert auch schon.

Aber jetzt zu meinem Problem: Ich will mir einen Smarthost erstellen, der die Mails nach der Absenderadresse dem richtigen Anbieter weiterleitet.
Diesen suche ich mir über ein lookup heraus. Aber irgendwas funktioniert mit der Liste noch nicht ganz...


smarthost_auto:
driver = manualroute
domains = !+local_domains
transport = remote_smtp

# Wenn ich es so schreibe, löst er den lookup nicht auf, weil der ":" bei ldap als Trenner erkannt wird
route_list = * ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(Ex tMailAddress=$sender_address)}}

# Das selbe, wenn ich alles in Anführungszeichen setze:
route_list = "* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(Ex tMailAddress=$sender_address)}}"

# Den Dopelpunkt durch "::" oder "\:" zu ersetzen hat auch nichts gebracht
# Also hab ich mal das Listentrennzeichen geändert (hab ich in der Doku gefunden).
# Dann löst er zwar den lookup richtig auf, aber das Ergebnis ist nicht verwertbar,
# da er es als einen string interpretiert.
route_list = <;"* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(Ex tMailAddress=$sender_address)}}"

# Wenn ich es direkt eintrage funktioniert es wie es soll:
route_list = * mail.gmx.de


Wie bekomme ich das hin, das es auch mit dem LDAP-Lookup funktioniert?
Ich bin echt am Verzweifeln und hab schon stundenlang gesucht und probiert.

Für Tipps wäre ich sehr dankbar!