Linux: Exim4 smarthost mit LDAP-Anbindung funktioniert nicht

GreatCornholio

Neuling
Thread Starter
Mitglied seit
25.10.2006
Beiträge
763
Hallo!

Eigentlich würde das ja ins Linuxforum gehören, aber bis es soweit ist stell ichs halt mal hier rein. Hier sind vor allem die Linux und Exim-Spezialisten gefragt.

Also es geht um folgendes:
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 (Passwörter und Benutzernamen wurden natürlich verändert):
Code:
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
Mit uid und userPassword meldet er sich mit seinem Mailprogramm am Server an, alles was mit "ExtMail" beginnt ist von mir erstellt und dient zum Abholen und Verschicken von Mails.

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...
Code:
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 fälschlicherweise 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?(ExtMailAddress=$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?(ExtMailAddress=$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 [B]einen[/B] string interpretiert und nicht als Liste.
	route_list = <;"* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
		ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$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.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh